Skip to main content
 首页 » 编程设计

python之基于一个引用数组向数组添加和删除元素

2025年05月04日26thcjp

这是 here 的延续.

如果我有一个数组 a 和一个数组 b 并且 a 可以小于或大于 b .有没有一种方法,将a 作为基本数组,用a 的元素替换b 的所有元素(逐个元素)?

例如,这是可行的,因为 a 具有与 b 一样多的元素:

import numpy as np 
 
a = np.array([1,2,3,4,5,6,7,8]) 
b = np.array([[1,2,3,4],[11,22,33,44]]) 
print(b[0].shape) 
 
i= 0 
for el in b: 
    for idx,x in enumerate(el): 
        el[idx] = a[i] 
        i+= 1 
 
print(b) 
[[1 2 3 4] 
 [5 6 7 8]] 

现在,例如,a 可以是:

a = np.array([1,2,3,4,5])

和b:

b = np.array([11,22,33,44])

我想要的结果是 b = [1,2,3,4,5] 因为 b 的所有 4 个元素都被替换为前 4 个元素a 并且我向 b 添加了一个元素(a 的最后一个)以便与 a 大小相同(我的引用数组)。

如果我有:

a = np.array([1,2,3]) 和 b = np.array([6,7,8,9]) ,然后结果 b 数组将是:b = [1,2,3],所以我从 b 中删除了一个元素(与 a< 大小相同)/code>) 并将其余部分替换为 a 元素。

现在,整个问题是:

我将有一个数组,其元素数量是 a 大小的倍数。

所以,a = np.array([1,2,3,4,5])

arr = np.array([1,2,3,4,5,6,7,8,9,10])

b = np.array([[0,1,2,3], [4,5,6,7]])

我想用 a 大小的倍数(因此是 5)替换从 arr 到 b 的元素。

所以,最终 b = [ [1,2,3,4,5], [6,7,8,9,10])

请您参考如下方法:

我觉得你想要

b = arr.reshape(-1, a.size) 
b 
Out[291]:  
array([[ 1,  2,  3,  4,  5], 
       [ 6,  7,  8,  9, 10]])