본문 바로가기
파이썬

파이썬 numpy 배열의 Python numpy 배열

by º기록 2020. 11. 21.
반응형

numpy 배열의 numpy 배열을 만드는 데 문제가 있습니다. 루프로 만들 것입니다.

a=np.array([])
while(...):
   ...
   b= //a numpy array generated
   a=np.append(a,b)
   ...

원하는 결과 :

[[1,5,3], [9,10,1], ..., [4,8,6]]

실제 결과 :

[1,5,3,9,10,1,... 4,8,6]

가능할까요? 배열의 최종 차원을 모르기 때문에 고정 차원으로 초기화 할 수 없습니다.

 

해결 방법

 

루프에서 numpy 배열에 추가하지 마십시오. 기본 Python에 비해 NumPy가 매우 나쁜 작업입니다. 이는 추가 할 때마다 데이터의 전체 사본을 만들기 때문에 2 차 시간이 소요됩니다.

대신 배열을 Python 목록에 추가하고 끝에서 변환하십시오. 결과는 더 간단하고 빠릅니다.

a = []

while ...:
    b = ... # NumPy array
    a.append(b)
a = np.asarray(a)

코드가 작동하지 않는 이유 : np.append list.append 처럼 작동하지 않습니다. 특히 추가 할 때 새 차원을 생성하지 않습니다. 2 차원으로 초기 배열을 만든 다음 명시적인 축 인수를 추가해야합니다.

 

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

 

 

반응형

댓글