我有一个python列表,其中包含numpy数组,例如:
a = [Numpy array 1, Numpy array 2, Numpy array 3]
这些Numpy数组都是2D numpy数组。
现在,如果我从列表“ a”中随机选择任何两个Numpy数组并创建一个元组,例如
b = (Numpy array 1, Numpy array 2)
我如何检测到选择了哪些阵列
Numpy array 1, Numpy array 2
不是
Numpy array 3
?
让我回答我的问题: 元组“ b”中不存在列表“ a”中的哪个numpy数组?
答案 0 :(得分:1)
您可以通过将numpy
数组转换为列表来实现。
假设这是您的a
和b
:
import random
a = [np.arange(10).reshape(2,5), np.arange(10,20), np.arange(20,30)] # list of numpy arrays
first = random.randint(0,2)
second = first
while second==first:
second = random.randint(0,2)
b = (a[first],a[second])
现在,我们想知道a
的哪个元素不在元组b
中。首先,将b
的numpy数组转换为list。然后,您可以使用a
的元素进行检查,这些元素也将转换为列表:
def arrayinList(arr, listOfArray):
return next((True for elem in listOfArray if np.array_equal(elem, arr)), False)
missing_elem = [elem for elem in a if not arrayinList(elem,b) ]
print(missing_elem)