gpt4 book ai didi

python - 如何根据相对值对 numpy 数组的每个元素进行操作?

转载 作者:太空狗 更新时间:2023-10-29 20:34:58 25 4
gpt4 key购买 nike

假设我们有一个数组

a = np.array([10,30,50, 20, 10, 90, 0, 25])

我想要的伪代码-

if a[x] > 80 then perform funcA on a[x]
if 40 < a[x] <= 80 then perform funcB on a[x]
if a[x] <= 40 then perform funcC on a[x]

使用 numpy 函数执行此操作的最简洁方法是什么?

最佳答案

通常,您会尝试避免对 NumPy 数组进行任何 Python 循环——这就是您首先使用 NumPy 的原因。为了举例,我假设 funcA() 将所有元素加 1,funcB() 加 2,funcC() 加 3 (请详细说明他们真正做了什么,以获得更量身定制的示例)。要实现你想要的,你可以这样做:

subset_a = a > 80
subset_b = (40 < a) & (a <= 80)
subset_c = a <= 40
a[subset_a] += 1
a[subset_b] += 2
a[subset_c] += 3

这使用 NumPy advanced indexing .例如,a > 80 的计算结果为 bool 值数组,可用于选择数组中满足条件的条目。

关于python - 如何根据相对值对 numpy 数组的每个元素进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401122/

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