python - 将两个 numpy 数组中的值与 'if' 进行比较

标签 python arrays numpy

我对 numpy 数组相当陌生,在将一个数组与另一个数组进行比较时遇到了问题。

我有两个数组,这样:

a = np.array([1,2,3,4,5])
b = np.array([2,4,3,5,2])

我想做如下的事情:

if b > a:
    c = b
else:
    c = a

所以我最终得到一个数组 c = np.array([2,4,3,5,5])。

这也可以被认为是为两个数组的每个元素取最大值。

但是,我遇到了错误

ValueError: The truth value of an array with more than one element is ambiguous. 
Use a.any() or a.all(). 

我尝试过使用这些,但我不确定它们是否适合我想要的。

有人能提供一些解决这个问题的建议吗?

最佳答案

您正在寻找函数 np.fmax。它采用两个数组的元素最大值,忽略 NaN。

import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([2, 4, 3, 5, 2])
c = np.fmax(a, b)

输出是

array([2, 4, 3, 5, 5])

关于python - 将两个 numpy 数组中的值与 'if' 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760183/

相关文章:

python - 皮蒙戈。如果搜索到的数据不存在,则返回 null

java - 尝试使用三个数组Java获得三列数据

python - Numpy 自动将字符串数组转换为数字数组

python - SonarQube 不显示 Bandit 的 Python 安全漏洞报告

python - Selenium (Python)-选择

python - 无法安装 pysam 0.13

php - 如何取消设置 PHP 数组中的数字索引元素?

c - 将图像文件读入 char 数组

python - 如何通过迭代批量数组来创建多维结果

python - numpy 中的 sin 函数如何工作?