【发布时间】:2021-06-13 14:48:04
【问题描述】:
我有两个 numpy 数组 A 和 B。A 的形状为 (10000000, 3),B 的形状为 (1000000, 3)。这两个数组都是 XYZ 坐标,因此 B 对应于 A 的某个区域。我必须找到 A 的索引,这些索引对应于值 B。
现在我正在解决如下。我需要一些帮助来使用 Numpy 或其他 python 包进行优化。
extract_BinA=np.empty(B.shape[0])
for i in range(B.shape[0]):
for j in range(A.shape[0]):
if(A[j][0]==B[i][0] and A[j][1]==B[i][1] and A[j][2]==B[i][2]):
extract_BinA[i]=j
【问题讨论】:
-
这些是巨大的数组 - 正如您所发现的,两个 for 循环方法无法扩展。为了开发更好的方法,我们需要了解更多信息,例如您要对多少元素进行二次采样,以及数组是否稀疏?
-
感谢您的快速回复。我想得到B对应的所有索引。数组很密集。
标签: python performance numpy