我认为in
对此有好处,但它应该在不应该的地方返回。例如:
import numpy as np
a = np.array([])
for i in range(3):
for j in range(3):
a = np.append(a,[i,j])
a = np.reshape(a,(9,2))
print(a)
print([[0,40]] in a)
将打印为true。我无法理解为什么会这样做...是因为0在列表中?如果整个数组都在列表中,我想要只打印一些内容。
我想要我的清单
[[0,1],
[0,2]]
只有在[0,x]
(同一形状相同的顺序)中才会返回true。
答案 0 :(得分:3)
你可以这样做:
([0, 40] == a).all(1).any()
第一步是计算匹配所在位置的2D布尔数组。然后,您会找到所有元素都为true的行。然后检查是否有任何行完全匹配。
答案 1 :(得分:1)
您可以使用np.isin(a_array,b_array),它返回一个布尔数组。 例如:
import numpy as np
a_array =np.array([1,2,3,4])
b_array = np.array([3,4,5])
bool_a_b = np.isin(a_array, b_array)
print(bool_a_b)
输出:
[False False True True True
答案 2 :(得分:0)
此代码可以帮助您:
my_list = [0, 40]
print(all(b in a for b in my_list))