n
Her eleman olan uzunluk bir NumPy dizi oluşturmak gerekiyor v
.
Şundan daha iyi bir şey var mı:
a = empty(n)
for i in range(n):
a[i] = v
Biliyorum zeros
ve ones
v = 0, ben kullanabilir 1. işine yarayacak v * ones(n)
ama zaman işi olmaz çok daha yavaş olacaktır.v
ise None
ve aynı zamanda
v * ones(n)
Pahalı çarpımı kullandığı için elbette hala korkunç. Değiştir *
ile +
olsa ve v + zeros(n)
dışarı dönüşler bazı durumlarda (içinde şaşırtıcı derecede iyi olması için stackoverflow.com/questions/5891410/... ).
var = np.empty(n)
ve daha sonra 'var [:] = v' ile doldurmak daha da hızlıdır . (btw, np.full()
bu kadar hızlı)
a = np.zeros(n)
döngüde kullanmak daha hızlıdıra.fill(0)
. Bu,a=np.zeros(n)
yeni bellek ayırmak ve başlatmak gerektiğini düşündüğüm için beklediğim şeyin tersi. Herkes bunu açıklayabilirse, bunu takdir ediyorum.