정수 인덱싱을 사용하지 못하고 도움이 될 수 있다고 확신합니다. I는 2D 배열 생성라고 :numpy 배열 둘 이상의 차원에서 정수 인덱싱
>>> import numpy as np
>>> x=np.array(range(24)).reshape((4,6))
>>> x
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
를 I 수 다음으로 선택 행 1 및 2 :
>>> x[[1,2],1]
array([ 7, 13])
:와
>>> x[[1,2],:]
array([[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17]])
또는 행 2 열 1, 3 그래서 다음과 같이 행 1과 2의 3, 4, 5 열을 선택할 수 있습니다.
>>> x[[1,2],[3,4,5]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
그리고 대신에 나는 두 단계를 수행해야합니다 R에서 오는
>>> a=x[[1,2],:]
>>> a
array([[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17]])
>>> a[:,[3,4,5]]
array([[ 9, 10, 11],
[15, 16, 17]])
, 내 기대가 잘못된 것 같다. 이것이 실제로 한 단계에서 가능하지 않다는 것을 확인하거나 더 나은 대안을 제안 할 수 있습니까? 감사!
편집 : 예에서 행과 열의 선택은 연속적이지만, 반드시 선택하지 않아도됩니다. 즉, 슬라이스 인덱싱이 내 경우에는 수행되지 않습니다. 이 같은
바로 그 중간 복사본이 실제로 나를 괴롭혔습니다. 많은 것들! – Miquel
nice; 나는 이것을 알지 못했다! –
나는 괄호 속에서 빠져 나간다 ... –