我需要创建一个长度为NumPy的数组n,其中每个元素为v。
还有什么比:
a = empty(n)
for i in range(n):
a[i] = v
我知道zeros并且ones可以在v = 0,1下使用。我可以使用v * ones(n),但是在速度会慢很多。vis 上将不起作用None,而且
您不能将None放在一个numpy数组中,因为单元格是使用特定的数据类型创建的,而None具有它自己的类型并且实际上是一个指针。
—
卡米恩
@Camion是的,我现在知道:)当然
—
最多
v * ones(n)仍然很恐怖,因为它使用了昂贵的乘法。尽管将其替换为*,+但v + zeros(n)在某些情况下却表现出令人惊讶的良好效果(stackoverflow.com/questions/5891410/…)。
最大值,而不是在添加v之前创建零数组,更快地将其创建为空,
—
Camion
var = np.empty(n)然后用'var [:] = v'填充。(顺便说一句,np.full()就是这样快)

a = np.zeros(n)在循环中使用的速度比快a.fill(0)。这与我的预期相反,因为我认为a=np.zeros(n)需要分配和初始化新的内存。如果有人能解释这一点,我将不胜感激。