获取Numpy 2D数组相交行的索引时出错

时间:2019-01-09 07:45:08

标签: python arrays numpy

这似乎是Get indices of intersecting rows of Numpy 2d Array的伪装,但我在解决方案时遇到了一些麻烦。

下面的代码(来自链接的问题)有效:

A=np.asarray([[0., -23.75, -100., 8.75],
   [0., -23.75, -100., 7.75],
   [0., -23.25, -100., 9.25],
   [0., -23.25, -100., 8.75],
   [0., -23.25, -100., 7.25],
   [0., -23.25, -100., 6.75],
   [0., -23.25, -100., 6.25]])

B=np.asarray([[0., -23.25, -100., 8.25],
   [0., -23.25, -100., 7.75],
   [0., -23.25, -100., 7.25],
   [0., -23.25, -100., 6.25]])

dt = np.dtype((np.void, A.dtype.itemsize * A.shape[1]))
np.nonzero(np.in1d(A.view(dt).reshape(-1), B.view(dt).reshape(-1)))[0]

输出符合预期(A中与B中相同子数组相对应的子数组的索引):

array([4, 6])

但是,当我将A扩展为较大的2D形状为C(25257,4)的2D数组C时却遇到了麻烦,但是我输入的数据类型与A相同。当我输入“ C.view(dt)”时,我得到以下信息错误消息:ValueError:更改为较大的dtype时,其大小必须是数组最后一个轴的总大小(以字节为单位)的除数。

任何想法为何扩展2D数组都会导致此特定错误消息?谢谢!

0 个答案:

没有答案