比较两个bolean数组

2024-04-26 14:57:31 发布

您现在位置:Python中文网/ 问答频道 /正文

a = np.array(['numeric','string','numeric'])
b = np.array(['numeric','string','numeric','numeric','string'])

我试图比较两个数组a和b

我想得到如下结果:array([ True, True, True]),因为前三个元素是相同的

我知道我可能会截断最大的数组以进行比较:

if len(a)-len(b)<0:
    b = np.array(b[0:len(a)-len(b)])

if len(a)-len(b) > 0:
    a = np.array(a[0:len(b)-len(a)])  

b==a

if len(a)-len(b)<0:
    b = b[0:len(a)]
else:
    a = a[0:len(b)]
a==b

但我想知道是否有一个内置的numpy函数可以做到这一点,而不必截断它们


1条回答
网友
1楼 · 发布于 2024-04-26 14:57:31

我不确定这方面的内置功能,但这里有一个快速解决方案:

import numpy as np
a = np.array(['numeric','string','numeric'])
b = np.array(['numeric','string','numeric','numeric','string'])
c = np.array([i == j for i, j in zip(a, b)])
print(c)
Out: [True,  True,  True]

Zip将自动截断较长数组以匹配较短数组的长度

不过需要注意的是,这是列表或1D数组的解决方案。如果计划使用二维阵列执行此操作,则需要不同的解决方案

相关问题 更多 >