2011-10-10 27 views
53

Ben2d numpy dizisine 2d list nasıl dönüştürülür?

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

gibi 2D liste bir şey var ve ben bir 2d numpy dizi dönüştürmek istiyoruz.

gibi bellek ayırmadan ve sonra da değerlerini depolamaksızın yapabilir miyiz?

+0

@Donkopotamus, Benim hatam oldu ... Bir sıra veriyordum ... Aynı şeyi yapıyordum ama hatayı aldım. Burada aynı kodu aldıktan sonra probun nerede olduğunu kontrol ettim ... Bu yüzden ... yardımcı olur ... Gönderimden önce belgeleri kontrol ederim ... Dostça hatırlatma için teşekkürler. – Shan

cevap

63

Sadece np.array listeyi geçmesi: Varsayılan ne arzu değilse de dtype ayarlamak için bu fırsatı olabilir

a = np.array(a) 

.

a = np.array(a, dtype=...) 
+31

bu çözüm işe yaramıyor. Bir sayısız python listesi alırsınız. – user1816847

+16

@ user1816847 Yalnızca 'alt' listeler uzunluk bakımından farklılık gösterirse (örn .: [[1,2], [1,2], [1,2,3]]. Soruda verilen örnekle çalışır. – compie

+1

Alt diziler aynı uzunlukta değilse, bu çözüm size yalnızca bir liste listesi verir (örn. Iç listeler, numpy dizilerine dönüştürülmez). Tam olarak bir Değişken 2. Boyutlu 2B dizisi (matris) – AHA

1

Ben

XVals1 = [.........] 
XVals2 = [.........] 

Her liste özdeş uzunlukta şeklinde bir piton dosyasında ihraç büyük veri setlerini kullanıyorum. Ben Sonra

>>> A = np.matrix([a1,a2]) 
0

np.array() daha da güçlü unutbu yukarıda söylediklerini daha

>>> a1 = np.array(SV.XVals1) 

>>> a2 = np.array(SV.XVals2) 

kullanın. Ayrıca daha yüksek bir Ebatlar dizisine np dizilerinin bir listesini dönüştürmek için kullanabilir, ardından örnek:

aArray=np.array([1,1,1]) 

bArray=np.array([2,2,2]) 

aList=[aArray, bArray] 

xArray=np.array(aList) 

xArray şekli (2,3), bir standart np dizisidir. Bu işlem bir döngü programlamayı önler.

1

sadece size

verecek kod Sonra

c = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
matrix([[1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9]]) 

aşağıdaki kullanmak Eğer

c.shape

c.ndim Aşağıdaki kodu kullanarak matrisin şeklini ve boyutunu kontrol edebilirsiniz

İlgili konular