2016-03-06 15 views
6

Neden python'da basit diziler yerine numpy dizileri kullanıyoruz? Aralarındaki ana fark nedir?NumPy dizisi ve basit python dizisi arasındaki fark nedir?

+4

Dizi ile ne demek istiyorsun? Gerçekten [diziler] mi demek istiyorsunuz (https://docs.python.org/3/library/array.html) veya 'list' demek istediniz mi ('[1, 2, 3]' bir listedir, değil bir dizi)? –

+2

Eğer dizileri kastediyorsanız, lütfen açıklığa kavuşturun. – jonrsharpe

cevap

2

Numpy dizileri, yazılan bir dizidir, bellekteki dizi homojen, yoğun şekilde paketlenmiş sayıları depolar.

Python listesi heterojen bir listedir, bellekteki liste referansları sayılardan ziyade nesnelere depolar.

Bu, Python listesinin, kodun numaraya her erişmesi gerektiğinde bir işaretçiyi işaretlemenin kaldırılmasını gerektirdiği anlamına gelir. Numpy dizi doğrudan numpy vektör işlemleri tarafından işlenebilir iken, bu vektör işlemleri liste ile kodlayabileceğiniz her şeyden çok daha hızlı hale getirir.

Sayısal dizinin sakıncası, dizideki tek öğelere erişmeniz gerekiyorsa, numpy'nin sayının bir python sayısal nesnesine kutunun/kutunun kaldırılması gerektiğidir; bu, belirli durumlarda yavaşlatabilir; ve heterojen veri tutamaz.

+2

Bu, * kitaplığı * için geçerlidir, ancak standart kitaplıkta da bulunan * * dizisi * için geçerli değildir. – jonrsharpe