2011-10-10 30 views
53

私は2Dリストに2dリストを2d numpy配列に変換する方法は?

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

のようなものを持っていると私は2D numpyの配列に変換します。

numpy.zeros((3,3)) 

のようなメモリを割り当てなくても、それを実行して値を格納することはできますか?

+0

@Donkopotamus、それは私の間違いだった...私はシーケンスを与えていた...私は同じことをしていたが、エラーを取得していた。私はここから同じコードを取得した後、probがどこにあるのかチェックしました。だから、役立ちます...オフコース私はここに投稿する前にドキュメンテーションをチェックします...フレンドリーな思い出に感謝します。 – Shan

答えて

63

だけnp.arrayにリストを渡す:

a = np.array(a) 

ます。また、デフォルトはあなたが望むものではない場合dtypeを設定するには、この機会を利用することができます。

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

この解決策は機能しません。あなたは素朴な配列のPythonリストを取得します。 – user1816847

+16

@ user1816847これは、 'sub'リストの長さが異なる場合にのみ発生します(例:[[1,2]、[1,2]、[1,2,3])。 – compie

+1

サブ配列の長さが同じでない場合、この解決策ではリストの数が少ない配列(内側のリストはnumpy配列に変換されません)だけが得られます。 可変2次元の2D配列(行列) – AHA

1

私は

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

各リストは、同じ長さのある形でのpythonファイルにエクスポート大規模なデータセットを使用しています。私はその後、

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

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

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

np.array()は、さらに強力なunutbuは、上記の言ったことよりも使用しています。 あなたはまた、より高いDIMENTIONアレイにNPアレイのリストを変換するためにそれを使用することができ、以下の簡単な例である:

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

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

aList=[aArray, bArray] 

xArray=np.array(aList) 

xArrayの形状は、(2,3)で、これは標準のNP配列です。この操作は、ループプログラミングを回避します。

1

ただ、それはあなたが次のコード

c.shape

c.ndimを使用することにより、マトリックスの形状と大きさを確認することができますあなたの

を与える次のコード

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

を使用