2017-03-02 19 views
1

NumPy配列のNumPy配列に値を設定しようとしています。ループの繰り返しが終了するたびに、追加する配列を作成します。その配列を別の配列の最後に追加したいと思います。例えば:NumPy配列にNumPy配列を追加する方法

first iteration 
    np.append([], [1, 2]) => [[1, 2]] 
next iteration 
    np.append([[1, 2]], [3, 4]) => [[1, 2], [3, 4]] 
next iteration 
    np.append([[1, 2], [3, 4]], [5, 6]) => [[1, 2], [3, 4], [5, 6]] 
etc. 

Iはnp.appendを使用してみたが、これは一次元配列を返す、すなわち

[1, 2, 3, 4, 5, 6] 
+2

は、' np.vstack'を検索可能であれば、最後に 'np.array'を呼び出します。 – Julien

+0

numpy.appendを使用するのは簡単ではないかもしれません。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.append.htmlに従ってください。軸を使用する場合、追加される配列は、追加される配列の次元と同じ次元でなければなりません。 axisを使用しない場合、追加される値は使用されるために平坦化されます。 – opensam

+0

@Julien私はそれを考えなかったとは信じられません。効率の他に、2次元配列全体を計算するまでNumPy形式にする必要があるデータで実際に何もしないので、はるかに簡単です。ありがとう。 – UBears

答えて

0

免責事項:それは非効率的であるので、付加配列は、例外であるべきです。彼らは、複数の軸を有し、かつappendを使用するときに軸を指定するようにあなたが軸

a = np.empty((0, 2)) 
a = np.append(a, [[3,6]], axis=0) 
a = np.append(a, [[1,4]], axis=0) 
1

巣に配列を指定することで、あなたの目的を達成することができ、言っ

import numpy as np 
a = np.array([[1, 2]]) # note the braces 
b = np.array([[3, 4]]) 
c = np.array([[5, 6]]) 

d = np.append(a, b, axis=0) 
print(d) 
# [[1 2] 
# [3 4]] 

e = np.append(d, c, axis=0) 
print(e) 
# [[1 2] 
# [3 4] 
# [5 6]] 

代わりに、あなたがリストに固執する場合、numpy.vstackを使用します。私はあなたがそうであるように、 `append`で最初の2D Pythonのリストを作成する効率のためにお勧めしますが、

import numpy as np 
a = [1, 2] 
b = [3, 4] 
c = [5, 6] 

d = np.vstack([a, b]) 
print(d) 
# [[1 2] 
# [3 4]] 

e = np.vstack([d, c]) 
print(e) 
# [[1 2] 
# [3 4] 
# [5 6]] 
関連する問題