首页 > 后端开发 > Python教程 > 如何对两个以上的 NumPy 数组执行逻辑或运算?

如何对两个以上的 NumPy 数组执行逻辑或运算?

Patricia Arquette
发布: 2024-12-02 18:41:18
原创
1004 人浏览过

How Can I Perform a Logical OR Operation on More Than Two NumPy Arrays?

Numpy 的有多个参数的逻辑或函数

Numpy 的逻辑_or 函数旨在比较两个数组并返回一个具有 True 或 False 值的数组,具体取决于比较结果。但是,该函数最多只能处理两个参数。要使用逻辑或查找两个以上数组的并集,我们有多种选择:

链接逻辑_or 调用

一种方法是链接多个逻辑_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)

print(result)
登录后复制

输出:

[ True  True  True False]
登录后复制
登录后复制
登录后复制
登录后复制

此方法的工作原理是按顺序组合数组并对它们一一执行逻辑或。

使用reduce

组合多个逻辑或调用的更简洁的方法是使用NumPy 的 reduce 函数:

result = np.logical_or.reduce((x, y, z))

print(result)
登录后复制

输出:

[ True  True  True False]
登录后复制
登录后复制
登录后复制
登录后复制

reduce 对给定的数组序列应用指定的操作(在本例中为逻辑或)。

Python 的 reduce

或者,Python 也提供了一个可以使用的reduce函数:

from functools import reduce

result = reduce(np.logical_or, (x, y, z))

print(result)
登录后复制

输出:

[ True  True  True False]
登录后复制
登录后复制
登录后复制
登录后复制

Python的reduce在这种情况下不太常用,因为通常有更简单的替代方案可用。

使用any

NumPy 的any 函数可以也可用于查找多个数组的并集,尽管它需要显式轴参数来指定执行操作的维度:

result = np.any((x, y, z), axis=0)

print(result)
登录后复制

输出:

[ True  True  True False]
登录后复制
登录后复制
登录后复制
登录后复制

any返回一个具有 True 或 False 值的数组,指示沿指定轴的任何元素是否为 True。

类似地,logic_and 和其他逻辑函数在 a 中运行类似的方式,允许链接、归约以及任何组合两个以上参数的操作。

以上是如何对两个以上的 NumPy 数组执行逻辑或运算?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板