본문 바로가기
파이썬

파이썬 복사하지 않고 Numpy 배열 연결

by º기록 2020. 9. 27.
반응형

Numpy에서는 np.append 또는 np.concatenate 를 사용하여 두 개의 배열을 종단 간 연결할 수 있습니다.

>>> X = np.array([[1,2,3]])
>>> Y = np.array([[-1,-2,-3],[4,5,6]])
>>> Z = np.append(X, Y, axis=0)
>>> Z
array([[ 1,  2,  3],
       [-1, -2, -3],
       [ 4,  5,  6]])

그러나 이들은 입력 배열의 사본을 만듭니다.

>>> Z[0,:] = 0
>>> Z
array([[ 0,  0,  0],
       [-1, -2, -3],
       [ 4,  5,  6]])
>>> X
array([[1, 2, 3]])

두 배열을 복사하지 않고 보기 로 연결하는 방법이 있습니까? np.ndarray 하위 클래스가 필요합니까?

 

해결 방법

 

Numpy 배열에 속하는 메모리는 연속적이어야합니다. 배열을 별도로 할당하면 메모리에 무작위로 흩어져 뷰 Numpy 배열로 나타낼 방법이 없습니다.

필요한 배열의 수를 미리 알고 있다면, 대신 미리 할당 한 하나의 큰 배열로 시작하여 각 작은 배열을 큰 배열에 대한 뷰로 만들 수 있습니다 (예 : 슬라이싱으로 얻은 것).

 

참조 페이지 https://stackoverflow.com/questions/7869095

 

 

반응형

댓글