2017-02-21 27 views
2

numpyを使ってベクトル化を行うのは混乱します。特にnumpyを使ったPython配列

、私は、このフォームのマトリックスを持っている:タイプの 私はそれには、以下の使用numpyのように見えるようにするにはどうすればよい<type 'list'>

[[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]

[[ 0.0 0.0 0.0  0.0 ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1  2  3  4 ]] 

はい、私は私が使用してそれを行うことができます知っている:

np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

しかし、私は非常に長い行列があり、私はちょうどそのような各列を入力することはできません。非常に長い行列がある場合、どのように処理することができますか?

+0

np.array([0.0、0.0、0.0、0.0]、[0.02、0.04、0.0325、0.04]、[1、2、3、4]) – Erotemic

+0

こんにちはErotemic、あなたが参照してくださいすることができ私の更新? – wrek

+0

入力したくない行列をどうやって得るのですか?現在どのような形で存在していますか(たとえば配列の配列、CSVファイル、ジェネレータ関数があります) – Marat

答えて

1

あなたが正しいサイズ(n)の配列に分割しない理由大規模な配列、で始まると仮定:

splitted = [l[i:i + n] for i in range(0, len(array), n)] 

、そこから行列を作る:

np.array(splitted) 
+0

'np.array(A).reshape'を使ってこのフォームをもっと速くすることができます。 – languitar

1

あなたの場合PythonオブジェクトAに格納されているリストのリストを持っていると言って、np.array(A)を呼び出すと、Aの要素を使ってnumpy配列が返されます。それ以外の場合は、データをロードする方法を明確にするために、現在のデータの形式を指定する必要があります。

2

これはタイプリストのマトリックスではなく、リストを含むリストです。あなたは、マトリックスと考えるかもしれませんが、Pythonのにはちょうどこれは、形状(3,4)と、2次元配列を作成し

arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

として

alist = [[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]] 

arr = np.array(alist) 

作品だけで同じリストとDTYPEフロートです

In [212]: arr = np.array([[0.0, 0.0, 0.0, 0.0], [0.02, 0.04, 0.0325, 0.04], [1, 2, 3, 4]]) 

In [213]: arr 
Out[213]: 
array([[ 0. , 0. , 0. , 0. ], 
     [ 0.02 , 0.04 , 0.0325, 0.04 ], 
     [ 1. , 2. , 3. , 4. ]]) 
In [214]: print(arr) 
[[ 0.  0.  0.  0. ] 
[ 0.02 0.04 0.0325 0.04 ] 
[ 1.  2.  3.  4. ]] 
関連する問題