我有两个数组,我想检查不同数组中有多少个整数是相同的。我遇到的问题是,它只会告诉我,当它们处于相同的位置时,有多少是相同的。两个数组都有15个数字。
例子:

import numpy as np
a = np.array([1, 4, 5, 7, 9, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26])
b = np.array([8, 28, 12, 3, 24, 16, 23, 19, 14, 2, 11, 29, 27, 6, 13])
print(np.count_nonzero(a==b))

即使存在明显相同的整数,也会打印0。我怎样才能打印出多少个整数具有相同的值?

最佳答案

您可以在ba之间执行广播比较,然后对匹配项进行汇总:

(b == a[:, None]).sum()
3

这是因为您有[14, 19, 23]作为公共元素。

09-26 21:36
查看更多