我有两个(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
,但显然不是按列比较。找到几列匹配的正确方法是什么?
答案 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)
因此,基本上,您减去两个数组并计算差的绝对值之和为零的列数。