2016-04-13 10 views
0

2つの(Python-)リストを含むナンシー配列を作成したいと思います。これらのリストの1つに要素を追加しようとすると、コードがクラッシュします。リストのナンシー配列

import numpy as np 
list0 = [0,0,0] 
list1 = [1,1,1] 
#list1.append(0) 
print(type(list0)) 
print(type(list1)) 
array0 = np.array((list0, list1)) 
array0[0].append(42) 
print(array0)  

混乱していることは、4行目のコメントを外すとコードが正常に動作することです。

エラーメッセージ私が手:

File "test.py", line 10, in <module> 
array0[0].append(3) 
AttributeError: 'numpy.ndarray' object has no attribute 'append' 

は、私は、Python 3.5.1上で実行し、numpyの1.10.4

+0

私はちょうど 'np.array(((0,0,0)、(1ということが分かりました、1,1))) 'は2次元配列を作成しようとします。 2つのリスト( '(0,0,0)'と '(1,1,1)')のサイズが異なる場合(例えば '(0,0)'と '(1,1、 1) ')。 2つの空のリストを使って配列を初期化する方法は 'array0 = np.empty(2、dtype = np.object)' 'array0 [:] = []、[]'と書くことです。 –

+0

はい、 'np.array'のデフォルトmulidimensional配列を作ることに。オブジェクトdtypeを作成するのは第2クラスのバックアップの選択です。普通のリストを使うほうが速いかもしれません。 – hpaulj

答えて

0

どのようにnumpyののスタック機能を使用してはどうですか? vstack(垂直スタック)とhstack(水平スタック)を使用してリスト/アレイを追加できます。新しく作成されたスタックに、さらに多くのリスト/アレイをスタックし続けることもできます。私は以下の3つの例を挙げます。

のPython(ファイルstackingArraysに保存されている)

import numpy as np 

list0 = [0,0,0] 
list1 = [1,1,1] 

# stack vertically 
array_v=np.vstack((list0,list1)) 
print array_v 

# stack horizontally 
array_h=np.hstack((list0,list1)) 
print array_h 

# stack more on to stacked array 
array_v2=np.vstack((array_v,list1)) 
print array_v2 

出力

> python -i stackingArrays.py 
>>> [[0 0 0] 
    [1 1 1]] 
>>> [0 0 0 1 1 1] 
>>> [[0 0 0] 
    [1 1 1] 
    [1 1 1]] 
関連する問題