【发布时间】:2020-08-23 14:14:57
【问题描述】:
我有一个 numpy 数组 x,我想根据 x 的值对 x 的元素执行操作。例如,假设我想对所有负元素取平方,对所有其他元素取四次方。以下代码可以解决问题
import numpy as np
x = np.array([-2,-1,0,1,2,3])
y = np.zeros(len(x))
for i in range(len(x)):
if x[i]<0:
y[i] = np.square(x[i])
else:
y[i] = np.power(x[i],4)
print(y)
由于我要处理大型数组并多次执行此操作,因此我正在寻找一种无需循环遍历所有元素的方法。
【问题讨论】:
-
你必须学习
numpy及其方法和ufuncs。正如答案所示,有一些工具可以将各种数学运算应用于整个数组 - 平方、幂、乘法等。没有一个神奇的函数可以进行迭代计算,并将其转化为编译的。跨度>
标签: numpy if-statement boolean