*.mat
파일 (사용 된 Matlab 버전은 확실하지 않음)은 Python 2.6에서 scipy.io.loadmat
으로 읽고 있는데, 배열로 인해 작업 할 수 없습니다. 배열 치수 지정. 그러나 요소에 액세스하려고 시도하는 것으로 보입니다. 여러 요소가있는 0-d 배열로 끝납니다. this과 this을 살펴 봤지만 요소 작업 방법에 관해서는 여전히 고민 중입니다. 내가 b.squeeze()
또는 b = b[0][0]
을 시도하면 내가 지금 0-d Numpy 배열의 여러 요소
b= [[ array([[ 1.0884988 , 1.08116209, 1.07364911, 1.06662874, 1.06008637,
1.0530468 , 1.04619028, 1.03984295, 1.03342865, 1.02715746,
1.02114066, 1.01496634, 1.00904967, 1.00316573, 0.99803184,
0.99262961 ]])]]
이
의 내가 배열을 읽어 가정 해 봅시다
,이 후data = scipy.io.loadmat(filename,squeeze_me=False)
....
b = data[0][0]['somevar']
, 나는
b= [[ 1.0884988 1.08116209 1.07364911 1.06662874 1.06008637
1.0530468 1.04619028 1.03984295 1.03342865 1.02715746
1.02114066 1.01496634 1.00904967 1.00316573 0.99803184
0.99262961]]
인이 0-d 배열을 사용하고 결국 오류로 끝납니다
IndexError: 0-d arrays can't be indexed
등이며, b
의 요소에 액세스 할 수 없습니다.
처음에 loadmat
에서 읽은 배열의 요소에 0-d 배열을 생성하지 않고 액세스 할 수 있으며, 바람직하게는 복수 [0]
인덱스를 사용하는 것보다 더 우아합니다. 도움이나 제안을 주셔서 감사합니다. 에 관계없이 내부 배열이 파이썬 라이브러리에서 array
또는 numpy.array
여부 - 당신이 보여처럼 파이썬 프롬프트에서 B를 입력하면
데이터에 대한 링크를 게시 할 수 있습니까? 나는 항상'loadmat'을 사용하며 어떤 방법 으로든 해결책이 될 것으로 압박하고 있습니다. – spencerlyon2
글쎄, 0-d 배열은 어쨌든 인덱싱 될 수 있습니다. array.item() 또는 array [()]를 사용하십시오. – seberg