向numpy数组添加偏差

2024-10-03 23:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个numpy数组,一个是维度(a,b)的2D,另一个是维度a的1D。我想将一维数组中每个索引的单个值添加到二维数组中相同索引的每个成员。下面是我尝试做的一个例子:

import numpy as np
firstArr = np.random.random((5,6))
secondArr = np.linspace(0, 4, 5)

我知道我可以用循环做我想做的事:

for i in range(5):
    firstArr[i] = firstArr[i] + secondArr[i]

但这并不是python式的,所以毫无疑问,当我在数百万次迭代中完成它时,需要花费很长时间

这里的解决方案是什么?谢谢

编辑: 我想我找到了答案:使用np.newaxis。这是可行的,但我不知道是否有更有效的方法。下面是它的工作原理:

arr = firstArr + secondArr[:, np.newaxis]

我现在把这个问题留待讨论,因为可能有一种更有效的方法可以做到这一点,但这至少是可行的。根据Numpy文档,它也可以写成:

arr = firstArr + secondArr[:, None]

我承认我不知道这到底是做什么的(仍在研究),所以任何指导都将不胜感激


Tags: 方法importnumpyforasnp成员random