gpt4 book ai didi

python - 如何对 2D numpy 数组执行按行或运算?

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:16 24 4
gpt4 key购买 nike

我有一个 numpy 数组。

[[1, 0, 1],
[1, 0, 0],
[0, 0, 1]]

我想对它执行 rowise OR 操作,以便生成的数组看起来像这样:

[1, 0, 1]

是否有一种直接的方法可以在不执行循环的情况下执行此操作?如果有人可以提出建议,我将不胜感激。谢谢

最佳答案

如果您更喜欢按位或(Python 中的 | operator 是按位或,而 or operator 是 bool 值或),您可以使用 np.bitwise_or() .然而,这只需要两个数组作为输入,所以你可以使用 Numpy 的 reduce()组合数组中所有子数组的能力。

>>> a = np.array([[1, 0, 1],[1, 0, 0],[0, 0, 1]])
>>> np.bitwise_or.reduce(a, 0)
array([1, 0, 1])

我喜欢它的明确性,但是 a.any() 解决方案很常见,不会引起任何人的注意。 reduce 的第一个参数当然是 array,第二个参数是您正在减少的 axis。因此,如果您愿意,您也可以按列或任何其他轴进行。

>>> a = np.array([[1, 0, 1],[1, 0, 0],[0, 0, 1]])
>>> np.bitwise_or.reduce(a, 1)
array([1, 1, 1])

关于python - 如何对 2D numpy 数组执行按行或运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com