2017-03-02 3 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. 

, 나는 np.append를 사용하여 시도했지만이 한 차원 배열을 반환 즉

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

은 찾아 볼'np.vstack' 내가 먼저 당신이 할 append'로 '와 2 차원 파이썬 목록을 작성 효율성을 추천하지만, 가능하다면 끝에있는'np.array' 만 호출하면됩니다. – Julien

+0

numpy.append를 사용하면 간단하지 않을 수 있습니다. as https://docs.scipy.org/doc/numpy/reference/generated/numpy.append.html 축을 사용하는 경우 추가되는 배열은 추가되는 배열의 차원과 동일해야합니다. 축을 사용하지 않으면 추가되는 값이 사용되기 때문에 평평하게됩니다. – opensam

+0

@Julien 나는 그것을 생각하지 못했다고 나는 믿을 수 없다. 효율성 외에도 실제로 2 차원 배열 전체를 계산할 때까지 NumPy 형식이어야하는 데이터로 실제로 아무것도 수행하지 않으므로 훨씬 더 직관적 인 것처럼 보입니다. 감사. – UBears

답변

0

면책 조항 :이 비효율적이기 때문에 추가 배열 예외해야합니다.

는 그들이 하나 개 이상의 축을 가질 수 있도록

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

둥지를 축에게 배열을 지정하여 목표를 달성하고, append를 사용하는 경우 다음 축을 지정할 수 말했다.

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 :

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]] 
관련 문제