繁体   English   中英

根据numpy数组中的位置使用numpy算法

[英]Using numpy arithmetic based on position in numpy array

我不太确定如何描述我的问题,但是我会尝试的。

我想知道numpy是否具有执行此操作的功能:

可以说我有一个称为grid的2D数组:

grid = [ [0,0],
         [0,0] ]

我还有另一个名为aList的2D数组:

aList = [ [1,2],
          [3,4] ]

我想基于第一个数组的索引将数学应用于第一个数组。

因此,每次迭代完成的数学运算如下:

grid[i][j] = [(i - aList[k][0]) + (j - aList[k][1])] 

当前在python中使用for循环执行此操作很昂贵,因此我需要替代方法。

编辑:更多的澄清,如果我不使用numpy,我会写这样的东西:

for i in range(2):
    for j in range(2):
        num = 0 
        for k in range(2):
            num += (i-aList[k][0]) + (j-aList[k][1])
        grid[i][j] = num

但是,这是减慢python中我拥有的数据量的方法。

您的代码可以被复制并大大加快,如下所示:

i_s = np.arange(2)
j_s = np.arange(2)

fast_grid = (i_s + j_s[:, None])*len(aList) - aList.sum()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM