我有一个numpy的二维数组,需要将数学公式仅应用于符合某些条件的数组的某些值。这可以使用for循环进行,如果条件,我认为使用numpy where()方法工作得更快。
到目前为止,我的代码是这样但它不起作用
cond2 = np.where((SPN >= -alpha) & (SPN <= 0))
SPN[cond2] = -1*math.cos((SPN[cond2]*math.pi)/(2*alpha))
应用公式后,原始数组中的值需要用相应的值替换。
有关如何使这项工作的任何想法?我正在使用大型阵列,因此需要并采用有效的方法。 感谢
答案 0 :(得分:2)
试试这个:
cond2 = (SPN >= -alpha) & (SPN <= 0)
SPN[cond2] = -np.cos(SPN[cond2]*np.pi/(2*alpha))