numpy 배열을 정렬하고 정렬 배열 색인을 얻지 만 원본 배열 색인을 적용하면 예상 한 바를하지 않는 문제가 있습니다. 대신 돌아 가지의numpy : 색인 생성 관련 문제
import numpy as np
# Two 3x3 matrices
x = np.random.rand(2, 3, 3)
# Perform some decomposition (Never mind the matrices are not hermitian...)
evals, evecs = np.linalg.eigh(x)
# evals has shape (2, 3), evecs has shape (2, 3, 3)
indices = evals.argsort(axis=1)[..., ::-1] # Do descending sort
# Now I want to apply the index to evals.
evals = evals[:, indices]
(2, 3) 배열, I는 (2, 3, 3) 다시 배열이 어디에 행이 점점 점점 오전 : 그래서, 여기에 내가 뭐하는 거지에 대한 테스트 케이스입니다 복제. 다음과 같음 :
array([[[ 1.15628047, 0.16853886, -0.28607138],
[ 1.15628047, 0.16853886, -0.28607138]],
[[ 2.4311532 , -0.00754817, -0.24086572],
[ 2.4311532 , -0.00754817, -0.24086572]]])
왜 그런지는 잘 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다.
'evals는 [:, 인덱스]''배열 배열의'index''th 열을 반환 할 간단합니다 ([1.2101455, 1.42952306])' 그래서 당신은 무엇을 기대합니까? – Kasramvd
글쎄, 나는 색인에 따라 순열을 기대하고 있었다. 글쎄, 처음 엔 노력하지 않았던 evals [색인]을 시도했다. 결과는 다음과 같습니다. array ([[1.15628047, 0.16853886, -0.28607138], [[2.4311532, -0.00754817, -0.24086572]]) – Luca
'(2,2,3) '. 첫 번째 2는'evals'의 1 번째 희미한 것이고'(2,3)'은'(2, 3) 배열로'evals'의 마지막 희미한 부분을 색인화 한 것입니다. – hpaulj