시작하려는 구조는 2 차원 배열이 아니라 목록을 요소로 포함하는 1 차원 배열입니다. 비슷한 것처럼 보일 수도 있지만 실제로는 상당히 다릅니다.
일반적인 (예외가 있습니다.) m x n array는 numnpy가 올바른 방법으로 [i, j]와 같은 색인을 해석 할 수있게 해주는 일부 "메타 데이터"와 함께 mn 요소의 선형 블록입니다.
귀하의 배열은 객체 참조 (포인터가 C 언어로되어 있음)의 1 차원 블록이므로, 개별 요소를 해결하려는 경우 다른 간접 레벨이 추가됩니다. 먼저 목록을 검색 한 다음 요소를 검색합니다.
귀하의 배열은 편의성과 속도를 향상시키지 않으므로 적절한 배열을 제공하므로 변환하는 것이 가장 좋습니다.
일반적으로 np.array
은 호환 가능한 길이의 중첩 된 시퀀스를 가능한 한 깊은 배열로 변환합니다. 엄밀히 말하자면, 이미 배열이기 때문에 귀하의 경우는 예외입니다. 따라서 np.array
은 셰이프를 포함하여 그 자체를 얕게 복사합니다 (목록 참조 만 복사하지만 목록 자체는 복사하지 않습니다).
이를 우회하는 한 가지 방법은 변환하기 전에 목록에 캐스팅이다
:
이
np.array(list(original_array))
'X' 어떤 "행"이없는 그 모양'(33)는이다'... 분명히 당신이 잘못된. –
어떤 종류가'X'와'X [0]'입니까? 'X = np.array (X)' –
'X.dtype'은'dtype ('O')'를 반환하고'X [0]'는리스트입니다. –