在python中将一个数组与其他两个数组进行比较

扬·伯特

我有一组3个数组,我会互相比较。数组a包含一组值,数组b和c的值应部分相同。

就是这样,如果说a[0] == b[0]c[0]总是错误的值

为了更好的解释,我尝试显示我的意思。

import numpy as np

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

print(a == b)
# return: [False False True  True]
print(a == c)
# return: [True True False False]

如您所见,从这两个集合中我都有两个True和两个False。因此,如果两者之一都为真,则总数应为真。当我执行以下操作时,我得到一个单个的True / False数组。答案就是我想要的...

print((a == b).all())
# return: False
print((a == c).all())
# return: False

print(a.all() == (b.all() or c.all()))
# return: True

当我制作数组b和c时,我有种种说法,在两种情况下都是错误的,我应该以False结尾

import numpy as np

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


print(a == b)
# return: [False False True  True]
print(a == c)
# return: [False True False False]

print((a == b).all())
# return: False
print((a == c).all())
# return: False

到目前为止,一切都很好

print(a.all() == (b.all() or c.all()))
# return: True

这部分不好,应该是假的!!我如何获得这样的一个或函数,以便当a相同值每个值都存在于bc??中时,我以True结尾

编辑:关于a[0] == b[0]比的解释c[0]:我有一个python函数,其中包含相位信息,并且必须执行一些操作。在此之前,我想检查是否与虚值数组或相位角数组有关。我想在做某事之前先检查一下。问题在于相位角,因为右侧是反相pi。因此,对于每个值,我都有两个选择。是的,在大多数情况下,它是排他的,或者在+/- pi / 2的情况下不是,因为两者都是正确的,这也很好。

正义的

根据您的示例和解释,我想您想要的是:

对于每个位置,正好bc具有相同的值a

如果是这样,可以使用以下代码完成:

def is_exclusively_jointly_same(a, b, c):
    return np.logical_xor(a==b, a==c).all() # or use ^ below
    # return ((a==b)^(a==c)).all()

^是异或(XOR)运算符,它返回True当且仅当精确地它的参数中的一个是True

因此,表达式的(a==b)^(a==c)意思是a==ba==c,但不是全部。然后.all()检查是否对数组中的所有位置都正确。

例子:

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

>>> a = np.array([1,2,3,4,5])
>>> b = np.array([0,2,0,0,5])#第一个值都不是1 
>>> c = np.array([0,0,3,4,0])
>>> is_exclusively_jointly_same(a ,b,c)
错误

>>> a = np.array([1,2,3,4,5])
>>> b = np.array([1,2,0,0,5])#首先既重视1 
>>> C = np.array([1,0,3,4,0])
>>> is_exclusively_jointly_same(A,b,C)

如果您想要的是:

对于每个位置,至少一个bc应该具有相同的值作为a

,那么您需要更改为OR而不是XOR,如下所示:

def is_jointly_same(a, b, c):
    return np.logical_or(a==b, a==c).all() # or use | below
    # return ((a==b) | (a==c)).all()

例子:

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

>>> a = np.array([1,2,3,4,5])
>>> b = np.array([0,2,0,0,5])#第一个值都不是1 
>>> c = np.array([0,0,3,4,0])
>>> is_jointly_same(a ,b,c)
错误

>>> a = np.array([1,2,3,4,5])
>>> b = np.array([1,2,0,0,5])#首先值都为1 
>>> c = np.array([1,0,3,4,0])
>>> is_jointly_same(a,b,c)为

这里的关键是,已经计算出每个单独的值时.all()应将其作为最终聚合器应用一次因此,当您发现自己正在申请.all()多次时,应该感到担忧。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个数组的元素与其他两个数组的元素进行比较,迅速

对一个数组进行排序并使其他两个数组保持同步

返回一个数组的函数,该数组是其他两个数组的交集

如何使用聚合框架比较两个其他数组,从而获得一个数组?

如何在for循环中将一个数组元素与所有其他数组元素进行比较?

在 Javascript 中从其他两个数组构建一个新数组

判断一个数是否与数组中的任意其他两个数组成一个连续的三个数

比较两个数组,请记住Ruby中一个数组的顺序

如何获得一个数组与其他数组的区别?

在Python中将两个列表连接到一个数组中

比较两个数组对象数据并在JavaScript中将一个对象合并到数组中?

对两个数组进行排序,具体取决于一个数组

根据一个数组的长度对两个数组进行排序

如何在一系列其他两个数组之间创建一个随机数组?

比较两个数组以获取一个数组的下一个值

在R中将两个数组转换为一个数据帧

比较两个数组后,仅删除第一个重复值和所有其他匹配值

python:将两个数组合并为一个数组

在C ++中将两个3 x 3数组连接为一个数组

Python:创建一个比较两个数组并在两个数组之间插入较大元素的函数

如何在 Kotlin 中将两个数组与参数数组合并为一个数组?

比较两个数组中的值并生成一个新数组

比较两个数组并使用差异创建一个新数组,考虑重复

如何比较两个数组的大小并返回一个更大的数组(不是值或大小)?

如何比较两个数组,并从一个数组中删除两个数组中不匹配的多个项目?

尝试比较两个数组并打印第一个数组的行(如果它们匹配并为整个第一个数组循环)

比较两个数组 - 一个数组的元素必须全部在另一个数组中

如何使用for循环比较两个数组并保持第一个数组的唯一性?

将两个数组与 For 循环与 python 进行比较