【发布时间】:2019-07-14 11:22:33
【问题描述】:
我有两个非常大的 numpy 数组,它们都是 3D 的。我需要找到一种有效的方法来检查它们是否重叠,因为首先将它们都变成集合需要太长时间。我尝试使用我在此处找到的另一种解决方案来解决同样的问题,但适用于 2D 数组,但我没有设法使其适用于 3D。 这是 2D 的解决方案:
nrows, ncols = A.shape
dtype={'names':['f{}'.format(i) for i in range(ndep)],
'formats':ndep * [A.dtype]}
C = np.intersect1d(A.view(dtype).view(dtype), B.view(dtype).view(dtype))
# This last bit is optional if you're okay with "C" being a structured array...
C = C.view(A.dtype).reshape(-1, ndep)
(其中 A 和 B 是二维数组) 我需要找到重叠的 numpy 数组的数量,但不是特定的。
【问题讨论】:
-
不确定这是否是您的意图,但您可以检查每个暗淡的交点,然后与结果相交
-
没有。在我的场景中,在第二和第三维度中有一个对象。我想检查这些对象是否出现在另一个数组中,如果有,有多少。
-
如果两个 3D 数组相交,您将如何定义?你能添加最少的样本数据吗?
-
“相交”是什么意思?在数学上,这个概念只适用于集合,不适用于矩阵。
-
对象是图像。图像是二维的,它们是一个数组。我想检查出现在一个数组中的某些图像是否也出现在另一个数组中。抱歉之前的解释不好
标签: python arrays numpy multidimensional-array numpy-ndarray