从这个问题中,我看到了如何用一个浮点数乘以一个numpy数组中的所有元素(JoshAdel的第二个答案)。但是当我将P更改为(长)数组的最大值时,是更好地事先存储最大值,还是在第二个示例中仅计算H的最大值一次?
import numpy as np
H = [12,12,5,32,6,0.5]
P=H.max()
S=[22, 33, 45.6, 21.6, 51.8]
SP = P*np.array(S)
或者
import numpy as np
H = [12,12,5,32,6,0.5]
S=[22, 33, 45.6, 21.6, 51.8]
SP = H.max()*np.array(S)
那么它是为每个要乘的项目计算H.max()
,还是聪明到只需计算一次?在我的代码中,S
和H
是比示例中更长的数组。
timeit
模块可以用来做这件事。 - luk32P=H.max()
就需要51.2微秒,然后计算SP = P*np.array(S)
需要165微秒,而计算SP = H.max()*np.array(S)
则需要217微秒,因此差别很小。 - EdChum