gpt4 book ai didi

python - numpy 中的高效向量选择

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:28 24 4
gpt4 key购买 nike

在给定数组索引列表的情况下,是否有一种有效的 numpy 机制可以从二维数组生成值数组?

具体来说,我有一个二维坐标列表,代表二维 numpy 数组中有趣的值。我按如下方式计算这些坐标:

nonzeroValidIndices = numpy.where((array2d != noDataValue) & (array2d != 0))
nonzeroValidCoordinates = zip(nonzeroValidIndices[0],nonzeroValidIndices[1])

从那里开始,我通过循环遍历坐标并一次索引一个 numpy 数组来构建 map ,类似于这个简化示例:

for coord in nonzeroValidCoordinates:       
map[coord] = array2d[coord]

我有几个庞大的数据集,我正在迭代这个算法,所以我对一个有效的解决方案很感兴趣。通过分析,我怀疑 array2d[coord] 行造成了一些痛苦。是否有更好的矢量形式来从 array2d 生成整个值矢量,或者我是否坚持一次索引一个值?

最佳答案

这样的事情怎么样:

a = np.arange(100).reshape((10,10))
ii = np.where(a > 27) # your nonzeroValidIndices
b = np.zeros_like(a) # your map
b[ii] = a[ii]

您可以使用 np.where 的结果来索引数组,如上所示。这应该完成类似于您在没有循环的情况下所做的事情,但我并不完全清楚您的目标 2D 数组实际上应该来自您的问题。不知道 map 是什么,看起来就像是将数据复制到相同大小的数组中。

关于python - numpy 中的高效向量选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com