SORU
14 HAZİRAN 2009, Pazar


Neden Python listeleri yerine NumPy?

0* *Benim öğrenme değer mi?

Yaklaşık 100 Serisi, ve 100x100x100 = 1 küp bir dizi yaratacağım milyon finansal piyasalar hücreleri var. Gerileme (3-değişken) her x, y ve standart hataları ile bir dizi doldurmak için z, her biri olacağım.

"Büyük matrisleri" Python listelerine karşı NumPy kullanmalıyım, performans ve ölçülebilirlik sebep için. bunu duydum Şey, Python listeleri biliyorum ve benim için iş gibi görünüyor.

Yukarıdaki sorunun ölçeği hareketli değer NumPy için mi?

Eğer 1000 serisi (küp, 1 milyar kayan nokta hücreleri) olsaydım?

CEVAP
14 HAZİRAN 2009, Pazar


NumPy bu diziler daha kompakt daha Python listeleri listesi listesini olarak tanımlıyorsunuz, Python, almak isteyen en az 20 MB ya da öylesine, bir süre NumPy 3D dizisi ile tek duyarlıklı yüzen hücreleri uyabilir 4 MB. Öğeleri okuma ve yazma erişimi de NumPy ile daha hızlı olur.

Belki de umurunda bile değilim o kadar sadece bir milyon hücre, ama kesinlikle için bir milyar hücre -- ne yaklaşması için uygun bir 32-bit mimariye sahip 64-bit kurar NumPy ki yanına 4 GB kadar, Python yalnız bırakır gerekiyor en az 12 GB (çok işaretçiler çift boyutu) -- bir çok pahalılaşan parça donanım!

Fark çoğunlukla nedeniyle "indirectness" -- bir Python listesi bir dizi işaretçileri için Python nesneleri, en az 4 bayt başına işaretçi artı 16 bayt için bile en küçük bir Python nesnesini (4 türü işaretçi, 4 için başvuru sayısı, 4 için değeri ve bellek yöneticileri mermi 16). NumPy bir dizi tek duyarlıklı sayılar -- her 4 bayt alır üniforma değerler dizisi, 8-hassas çift olanlar bayt. Daha az esnek, ama oldukça standart Python listelerinin esneklik için ödeme yaparsınız!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • bobinire

    bobinire

    24 EYLÜL 2006
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012