检查 2 个数组中的任何值是否相等
check if any values in 2 arrays are equal
我想检查是否可以在第二个数组中找到数组的任何元素(无论其位置如何)。
例如
第一个数组:array([1,4,7,5,3])
第二个数组:array([5,2,9,0,6])
然后我想知道,5
出现在两个数组中。
我猜
array1 == array2
不是检查这个的正确操作。
如何测试 2 个数组中是否有相同的 2 个元素?
提前致谢!
尝试获取 2 个数组的交集:
list(set(arr_1) & set(arr_2))
或者:
list(set(arr_1).intersection(set(arr_2)))
要计算重叠元素 - 只需获取交集的长度:
len(list(set(arr_1) & set(arr_2)))
您可以使用 np.isin(...)
[numpy-doc] here to check if the value of an array is in another array, and then check with .any()
[numpy-doc] 如果至少有一项是这样的:
>>> np.<b>isin(</b>array1, array2<b>).any()</b>
True
首先想到的是使用 numpy.add.outer
并检查结果数组中是否有零:
import numpy
a = numpy.random.randint(0, 10, 4)
b = numpy.random.randint(0, 10, 4)
print(a, b)
print(numpy.add.outer(a, -b))
has_dups = numpy.any(numpy.add.outer(a, -b) == 0)
print(has_dups)
我想检查是否可以在第二个数组中找到数组的任何元素(无论其位置如何)。
例如
第一个数组:array([1,4,7,5,3])
第二个数组:array([5,2,9,0,6])
然后我想知道,5
出现在两个数组中。
我猜
array1 == array2
不是检查这个的正确操作。
如何测试 2 个数组中是否有相同的 2 个元素?
提前致谢!
尝试获取 2 个数组的交集:
list(set(arr_1) & set(arr_2))
或者:
list(set(arr_1).intersection(set(arr_2)))
要计算重叠元素 - 只需获取交集的长度:
len(list(set(arr_1) & set(arr_2)))
您可以使用 np.isin(...)
[numpy-doc] here to check if the value of an array is in another array, and then check with .any()
[numpy-doc] 如果至少有一项是这样的:
>>> np.<b>isin(</b>array1, array2<b>).any()</b>
True
首先想到的是使用 numpy.add.outer
并检查结果数组中是否有零:
import numpy
a = numpy.random.randint(0, 10, 4)
b = numpy.random.randint(0, 10, 4)
print(a, b)
print(numpy.add.outer(a, -b))
has_dups = numpy.any(numpy.add.outer(a, -b) == 0)
print(has_dups)