比较两个numpy数组逐行ValueError

Abh*_*tia 2 python numpy

我想NumPy逐行比较两个数组并返回相同行的数量。

如果我使用下面的代码:

a=np.array([[1,2],[3,4]])
b=np.array([[1,4],[2,3]])
comp= np.logical_and(np.equal(a,b))
correct=numpy.sum(comp)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError: invalid number of arguments
Run Code Online (Sandbox Code Playgroud)

但是,这可行:

np.logical_and([True, False], [False, False])
Run Code Online (Sandbox Code Playgroud)

这可能很愚蠢,但我是新手NumPy。请帮忙。

mgi*_*son 5

我认为您想要一些类似于:

np.sum(np.all(np.equal(a, b), axis=1))
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以简化为以下内容:

np.sum(np.all(a == b, axis=1))
Run Code Online (Sandbox Code Playgroud)

这将返回1

a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 2], [5, 6]])
Run Code Online (Sandbox Code Playgroud)

0适用于:

a = np.array([[1, 2], [3, 4]])
b = np.array([[1, 3], [5, 6]])
Run Code Online (Sandbox Code Playgroud)