Numpy 比较嵌套数组

问题描述 投票:0回答:1

我正在考虑任意 n 的形状 (n,2) 的数组。我想检查两个元素的子数组是否匹配。举个例子:

import numpy as np

a=np.array([[1,0],[2,0]])
b=np.array([[1,0],[2,0]])
c=np.array([[3,0],[4,0]])
d=np.array([[1,0],[5,0]])

if (b == a).any() == True:
    print('y')
    
if (c == a).any() == True:
    print('y1')
    
if (d == a).any() == True:
    print('y2')

在此代码中,我将第一个和第三个条件评估为 True。正如所写的,所有语句都返回 True,因为代码按元素比较数组。

是否有一种简单的方法可以完成此操作,而无需循环遍历每个数组并直接比较?

python arrays numpy multidimensional-array numpy-ndarray
1个回答
0
投票

(c == a).all(axis=1).any()
首先检查轴 1 上的所有元素是否相同,然后再检查任何子数组是否如此。

仅当您想要比较具有相同第一个索引的子数组时,即 a[0] 与 b[0] 或 a[1] 与 b[1],但不是 a[0] 与 b[1] 时,这才有效.

© www.soinside.com 2019 - 2024. All rights reserved.