3 回答
TA贡献1772条经验 获得超8个赞
我假设您想对行应用逻辑与。你可以申请numpy.all。
>>> import numpy as np
>>> a = np.array([[True, True, False], [False, False, False], [True, True, True]])
>>> a
array([[ True, True, False],
[False, False, False],
[ True, True, True]])
>>>
>>> np.all(a, axis=1)
array([False, False, True])
对于没有 的解决方案numpy,您可以使用operator.and_和functools.reduce。
>>> from operator import and_
>>> from functools import reduce
>>>
>>> lst = [[True, True, False], [False, False, False], [True, True, True]]
>>> [reduce(and_, sub) for sub in lst]
[False, False, True]
编辑:实际上,reduce在这种特殊情况下有点多余。
>>> [all(sub) for sub in lst]
[False, False, True]
也能完成这项工作。
TA贡献1841条经验 获得超3个赞
你也可以在没有 NumPy 的情况下做到这一点。这是使用列表理解的一种解决方案。说明:它将遍历子列表,即使每个子列表中的一项是False,它也会输出Falseelse True。
inp = [[True, True, False],[False, False, False],[True, True, True]]
out = [False if False in i else True for i in inp]
print (out)
# [False, False, True]
如下 Jean 建议的替代方案(不那么冗长):
out = [False not in i for i in inp]
添加回答
举报