如何查找两个numpy数组中有多少列彼此匹配?

时间:2019-03-08 20:11:45

标签: python numpy

我有两个(10,10000)0's的numpy数组矩阵。我想计算有多少列匹配。例如:

1's

ms Out[164]: array([[1., 0., 0., 1.], [0., 1., 1., 0.], [0., 0., 0., 0.]]) y_en Out[165]: array([[0., 1., 0., 1.], [1., 0., 0., 0.], [0., 0., 1., 0.]]) ms的最后一列都匹配,所以我应该得到y_en(仅找到一列匹配项)。我尝试了1,但显然不是按列比较。找到几列匹配的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以尝试

import numpy as np
ms = np.array([[1., 0., 0., 1.],
               [0., 1., 1., 0.],
               [0., 0., 0., 0.]])
y_en = np.array([[0., 1., 0., 1.],
                 [1., 0., 0., 0.],
                 [0., 0., 1., 0.]])

np.count_nonzero(np.sum(abs(ms-y_en), axis=0) == 0)

因此,基本上,您减去两个数组并计算差的绝对值之和为零的列数。