gpt4 book ai didi

python - Elementwise if elif函数在python中使用数组

转载 作者:太空狗 更新时间:2023-10-29 17:45:32 25 4
gpt4 key购买 nike

我有一个定义

def myfunc(a, b):
if a < (b*10):
result = a*2
else:
result = a*(-1)
return result

现在当我使用 for 循环一个一个地输入我的 ab 值时,这显然是完美的,但是它需要永远(我已经简化了定义 a一点点),我从经验中知道,将值作为数组传递会加快速度。

那么我该如何修改这段代码来接受数组。我使用了 any()all() 命令,但我一定是用错了它们,因为我的函数只吐出一个值而不是一组值。

我想要的输出示例是:

>>>a = np.array([1,5,50,500])
>>>b = 1
>>>print myfunc(a, b)
array([-1, -5, 100, 1000])

最佳答案

你可以使用 np.where :

def myfunc(a, b):
return np.where(a < b*10, a*2, -a)

例如,

In [48]: a = np.array([1, 5, 50, 500])

In [49]: b = 1

In [50]: myfunc(a, b)
Out[50]: array([ 2, 10, -50, -500])

请注意输出与您想要的输出不同,但与您发布的代码一致。您当然可以通过反转不等式来获得所需的输出:

def myfunc(a, b):
return np.where(a > b*10, a*2, -a)

然后

In [52]: myfunc(a, b)
Out[52]: array([ -1, -5, 100, 1000])

关于python - Elementwise if elif函数在python中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290557/

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