这是 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]])
