BenNegatif öğeleri döngü olmadan nasıl sıfırlarsınız?
Ben sıfıra tüm negatif unsurları ayarlamak istediğiniza = np.array([2, 3, -1, -4, 3])
gibi bir dizi varsa: [2, 3, 0, 0, 3]
. Açıkça olmadan numpy ile nasıl yapılır? I b
orijinal a
Sonuç
import numpy as np
from time import time
a = np.random.uniform(-1, 1, 20000000)
t = time(); b = np.where(a>0, a, 0); print "1. ", time() - t
a = np.random.uniform(-1, 1, 20000000)
t = time(); b = a.clip(min=0); print "2. ", time() - t
a = np.random.uniform(-1, 1, 20000000)
t = time(); a[a < 0] = 0; print "3. ", time() - t
a = np.random.uniform(-1, 1, 20000000)
t = time(); a[np.where(a<0)] = 0; print "4. ", time() - t
a = np.random.uniform(-1, 1, 20000000)
t = time(); b = [max(x, 0) for x in a]; print "5. ", time() - t
- 1,38629984856 aynı uzunlukta bir dizi örneğin
- 0.516846179962 < - hızlı a.clip (dak = 0);
- 0,615426063538
- 0,944557905197
- 51,7364809513
c = a * b
, bir hesaplama modifiye a
kullanmaya gerek
', [a <0] = 0' (min = 0)' a.clip 'önemli ölçüde daha hızlıdır. – user545424