在Python中工作,我的数据如下所示:
myList = [[1,0],
[0,1],
[1,1],
[0,0],
[0,1]]
我想使用numpy检查每个子列表是否等于特定列表,如果满足条件则返回单个True或False。
但是,如果我天真地这样做,例如:
evaluation = np.array(myList)==[1,1]
我得到的结果如下:
[[True,False],
[False,True],
[True,True],
[False,False],
[False,True]]
当我真的想要输出看起来像这样:
[False,
False,
True,
False,
False]
有什么想法吗?我知道你可以通过列表理解来做到这一点并避免numpy,但似乎应该有一种矢量化的方式来完成上述操作而不需要显式循环。实际数据要大得多,采用更快的方法会有所帮助。
答案 0 :(得分:3)
您可以使用all
:
np.equal(myList,[1,1]).all(1).tolist()
或者@pault声明:
(myList == [1, 1]).all(axis=1)
输出:
[False, False, True, False, False]