본문 바로가기
파이썬

파이썬 1D 배열을 numpy 행렬로 변환

by º기록 2021. 1. 18.
반응형

난수를 가진 간단한 1 차원 파이썬 배열이 있습니다. 내가 원하는 것은 특정 모양의 numpy 매트릭스로 변환하는 것입니다. 내 현재 시도는 다음과 같습니다.

randomWeights = []
for i in range(80):
    randomWeights.append(random.uniform(-1, 1))
W = np.mat(randomWeights)
W.reshape(8,10)

불행히도 항상 다음과 같은 형식의 행렬을 만듭니다.

[[랜덤 1, 랜덤 2, 랜덤 3, ...]]

따라서 한 차원의 첫 번째 요소 만 사용되며 모양 변경 명령은 효과가 없습니다. 첫 번째 x 항목이 행렬의 행 1이되고 다음 x 항목이 행 2가되도록 1D 배열을 행렬로 변환하는 방법이 있습니까?

기본적으로 이것은 의도 된 모양입니다.

[[1, 2, 3, 4, 5, 6, 7, 8],
 [9, 10, 11, ... ,    16],
 [...,               800]]

입력 배열을 구문 분석하여 원하는 형식으로 항상 새 행렬을 수동으로 만들 수 있다고 가정합니다. 그러나 내가 보지 못하는 내장 기능을 가진 더 간단하고 더 eleganz 솔루션이 있는지 알고 싶습니다. 이러한 행렬을 수동으로 작성해야하는 경우 모든 소스 데이터가 단순한 1D 배열로 제공되지만 행렬로 계산되기 때문에 코드의 다른 영역에서 많은 추가 작업이 필요합니다.

 

해결 방법

 

reshape () 는 제자리에서 모양이 변경되지 않으므로 결과를 할당해야합니다.

>>> W = W.reshape(8,10)
>>> W.shape
(8,10)    

 

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

 

 

반응형

댓글