在 Numpy 中,logic_or 只能比较两个数组。这就引出了一个问题:如何找到两个以上数组的并集?同样的问题也适用于逻辑与和获取多个数组的交集。
Numpy 逻辑函数的限制
Numpy 明确将逻辑_或限制为两个参数:x1 和 x2。
链接逻辑操作
可以链接对逻辑_or 的多次调用:
x = np.array([True, True, False, False]) y = np.array([True, False, True, False]) z = np.array([False, False, False, False]) result = np.logical_or(np.logical_or(x, y), z)
结果:[ True, True, True, False]
使用一般化链接Numpy 的Reduce
为了概括这个链接, NumPy 提供了reduce 函数:
result = np.logical_or.reduce((x, y, z))
结果:[ True, True, True, False]
此方法也适用于多维数组:
xyz = np.array((x, y, z)) result = np.logical_or.reduce(xyz)
结果:[真,真,真,假]
Python 的Reduce
Python 的 functools.reduce 也可以使用:
import functools result = functools.reduce(np.logical_or, (x, y, z))
结果:[ True, True, True, False]
Numpy 的 Any函数
Numpy 的任意函数也可以使用,但需要显式轴参数:
result = np.any((x, y, z), axis=0)
结果:[ True, True, True, False]
逻辑与(逻辑与)和其他操作
类似的方法适用于其他逻辑运算,包括逻辑与。例如,逻辑 xor 没有与 all 或 any 等效的值。
以上是如何对多个 NumPy 数组执行逻辑 OR/AND 运算?的详细内容。更多信息请关注PHP中文网其他相关文章!