我有一个定义
def myfunc(a, b):
if a < (b*10):
result = a*2
else:
result = a*(-1)
return result
现在,当我使用for循环逐个输入my a
和b
值时,这显然可以完美地工作,但它需要很长时间(我已经将定义简化了一点),而且根据我的经验,将值作为数组传递进来会加速处理速度。
那么,我该如何修改这段代码以接受数组呢?我已经尝试过使用any()
和all()
命令,但肯定使用方法有误,因为我的函数只输出一个值,而不是数值数组。
我的预期输出示例如下:
>>>a = np.array([1,5,50,500])
>>>b = 1
>>>print myfunc(a, b)
array([-1, -5, 100, 1000])
np.all
返回一个布尔值,即True
或False
。它仅测试a
的每个元素(和相应的b
元素)是否满足a < b*10
。如果条件在每个元素上都成立,则返回True
,否则返回False
。我不认为这对你在这种情况下有帮助。 - unutbunp.where
和另外两个参数,我一定会更经常地使用它。 - KenHBS