본문 바로가기
파이썬

파이썬 Numpy : 2 개의 실제 배열로 복잡한 배열을 만드시나요?

by º기록 2020. 12. 7.
반응형

이게 너무 쉬울 거라고 맹세하는데 ... 왜 안돼? :(

사실, 동일한 배열의 두 부분을 결합하여 복잡한 배열을 만들고 싶습니다.

Data[:,:,:,0] , Data[:,:,:,1]

작동하지 않습니다.

x = np.complex(Data[:,:,:,0], Data[:,:,:,1])
x = complex(Data[:,:,:,0], Data[:,:,:,1])

내가 뭔가를 놓치고 있습니까? numpy는 복소수에 대해 배열 함수를 수행하는 것을 좋아하지 않습니까? 오류는 다음과 같습니다.

TypeError: only length-1 arrays can be converted to Python scalars

 

해결 방법

 

이것은 당신이 원하는 것을하는 것 같습니다.

numpy.apply_along_axis(lambda args: [complex(*args)], 3, Data)

다음은 또 다른 해결책입니다.

# The ellipsis is equivalent here to ":,:,:"...
numpy.vectorize(complex)(Data[...,0], Data[...,1])

또 다른 간단한 솔루션 :

Data[...,0] + 1j * Data[...,1]

PS : 메모리를 절약하려는 경우 (중간 어레이 없음) :

result = 1j*Data[...,1]; result += Data[...,0]

아래 devS의 솔루션도 빠릅니다.

 

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

 

 

반응형

댓글