슬라이스 목록으로 numpy 배열 인덱싱

경화성

목록이 slices있고 numpy배열 을 색인화하는 데 사용합니다 .

arr = np.arange(25).reshape(5, 5)
# 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, 24]])

slice_list = list(map(lambda i: slice(i, i+2), [1, 2]))
# [slice(1, 3, None), slice(2, 4, None)]

print(arr[slice_list])
# == arr[1:3, 2:4]
# [[ 7  8]
#  [12 13]]

이것은 잘 작동하지만 인덱싱하려는 배열의 차원 수보다 더 적은 슬라이스가 있으면 중단됩니다.

arr3d = arr[np.newaxis, :, :]  # dims: [1, 5, 5]
arr3d[:, slice_list]
# IndexError: only integers, slices (`:`), ellipsis (`...`),(`None`) 
#  numpy.newaxis and integer or boolean arrays are valid indices

그러나 다음 예제는 작동합니다.

arr3d[:, slice_list[0], slice_list[1]]
arr3d[[slice(None)] + slice_list]
arr3d[:, [[1], [2]], [2, 3]]

더 많은 차원의 배열을 인덱싱하기 위해 슬라이스 목록을 사용할 수있는 방법이 있습니까? 다음과 같은 일을하고 싶습니다.

arr[..., slice_list]
arr[..., slice_list, :]
arr[:, slice_list, :]

배열의 크기에 대해 생각하지 않고 [slice(None)]*Xslice_list.

이드 헤사

슬라이스 튜플과 줄임표 개체를 사용하여이를 수행 할 수 있습니다. 인덱싱에 사용할 모든 요소를 ​​튜플에 넣고 인덱스로 사용하십시오.

import numpy as np

arr = np.arange(24).reshape(2, 3, 4)
print(arr)
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
# 
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]
slice_tup = tuple(map(lambda i: slice(i, i+2), [1, 2]))
print(slice_tup)
# (slice(1, 3, None), slice(2, 4, None))
print(arr[slice_tup])
# [[[20 21 22 23]]]

# arr[..., slice_list]
print(arr[(Ellipsis, *slice_tup)])
# [[[ 6  7]
#   [10 11]]
# 
#  [[18 19]
#   [22 23]]]

# arr[..., slice_list, :]
print(arr[(Ellipsis, *slice_tup, slice(None))])
# [[[20 21 22 23]]]

# arr[:, slice_list, :]
print(arr[(slice(None), *slice_tup, slice(None))])
# IndexError: too many indices for array

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

인덱스 배열로 여러 2D 범위를 Numpy 슬라이싱

분류에서Dev

인덱스 배열로 여러 2D 범위를 Numpy 슬라이싱

분류에서Dev

인덱스 배열로 다차원 numpy 배열 인덱싱

분류에서Dev

numpy 배열의 슬라이스를 사용하여 numpy 배열 인덱싱

분류에서Dev

파이썬은 목록이나 numpy 배열로 반복 인덱싱

분류에서Dev

배열로 numpy 배열 인덱싱

분류에서Dev

그것을 수정하기 위해 numpy 배열의 인덱싱 / 슬라이스

분류에서Dev

배열로 Numpy ndarray 슬라이싱

분류에서Dev

numpy 배열로 사전 인덱싱

분류에서Dev

파이썬 numpy 배열 인덱싱

분류에서Dev

Numpy 배열-TypeError : 목록 인덱스는 튜플이 아닌 정수 또는 슬라이스 여야합니다.

분류에서Dev

열 인덱스 목록으로 numpy 배열을 분할하는 방법

분류에서Dev

Numpy 슬라이싱 기능 : 배열에서 선택하기 위해 배열 모양 (X, 2)에서 슬라이스 인덱스 np.r_ [a : b, c : d, ...]를 동적으로 생성

분류에서Dev

배열을 인덱스로 사용하여 numpy 배열을 슬라이스 할 수 있습니까?

분류에서Dev

3D numpy 배열을 3 개의 인덱스 목록으로 변환

분류에서Dev

3d Numpy 배열의 여러 값을 인덱스 목록으로 대체

분류에서Dev

numpy TypeError에서 배열 요소 획득 : 슬라이스 인덱싱을 수행 할 수 없습니다.

분류에서Dev

Numpy : 배열 인덱싱

분류에서Dev

인덱스 목록을 기반으로하는 값으로 numpy 배열에 새 열 추가

분류에서Dev

다른 배열로 numpy 배열 인덱싱

분류에서Dev

다른 배열에서 슬라이스하는 numpy 배열의 인덱스

분류에서Dev

numpy에서 인덱스로 배열을 인덱싱하는 방법은 무엇입니까?

분류에서Dev

주어진 인덱스로 numpy 배열을 인덱싱하는 방법은 무엇입니까?

분류에서Dev

목록으로 인덱싱 할 때 numpy 배열의 내용을 변경하는 방법은 무엇입니까?

분류에서Dev

목록을 사용한 Numpy 배열 인덱싱 : arr [:] [li]와 arr [:, li]의 차이점

분류에서Dev

라인 인덱싱을 유지하면서 2D numpy 배열을 열 벡터로 재정렬

분류에서Dev

인덱스로 numpy 배열 인쇄

분류에서Dev

numpy 배열에 대한 다중 인덱스 : IndexError : numpy.ndarray 유형의 슬라이스 항목을 정수로 강제 변환하지 못했습니다.

분류에서Dev

파이썬 numpy 배열 정수 인덱스 플랫 슬라이스 할당

Related 관련 기사

  1. 1

    인덱스 배열로 여러 2D 범위를 Numpy 슬라이싱

  2. 2

    인덱스 배열로 여러 2D 범위를 Numpy 슬라이싱

  3. 3

    인덱스 배열로 다차원 numpy 배열 인덱싱

  4. 4

    numpy 배열의 슬라이스를 사용하여 numpy 배열 인덱싱

  5. 5

    파이썬은 목록이나 numpy 배열로 반복 인덱싱

  6. 6

    배열로 numpy 배열 인덱싱

  7. 7

    그것을 수정하기 위해 numpy 배열의 인덱싱 / 슬라이스

  8. 8

    배열로 Numpy ndarray 슬라이싱

  9. 9

    numpy 배열로 사전 인덱싱

  10. 10

    파이썬 numpy 배열 인덱싱

  11. 11

    Numpy 배열-TypeError : 목록 인덱스는 튜플이 아닌 정수 또는 슬라이스 여야합니다.

  12. 12

    열 인덱스 목록으로 numpy 배열을 분할하는 방법

  13. 13

    Numpy 슬라이싱 기능 : 배열에서 선택하기 위해 배열 모양 (X, 2)에서 슬라이스 인덱스 np.r_ [a : b, c : d, ...]를 동적으로 생성

  14. 14

    배열을 인덱스로 사용하여 numpy 배열을 슬라이스 할 수 있습니까?

  15. 15

    3D numpy 배열을 3 개의 인덱스 목록으로 변환

  16. 16

    3d Numpy 배열의 여러 값을 인덱스 목록으로 대체

  17. 17

    numpy TypeError에서 배열 요소 획득 : 슬라이스 인덱싱을 수행 할 수 없습니다.

  18. 18

    Numpy : 배열 인덱싱

  19. 19

    인덱스 목록을 기반으로하는 값으로 numpy 배열에 새 열 추가

  20. 20

    다른 배열로 numpy 배열 인덱싱

  21. 21

    다른 배열에서 슬라이스하는 numpy 배열의 인덱스

  22. 22

    numpy에서 인덱스로 배열을 인덱싱하는 방법은 무엇입니까?

  23. 23

    주어진 인덱스로 numpy 배열을 인덱싱하는 방법은 무엇입니까?

  24. 24

    목록으로 인덱싱 할 때 numpy 배열의 내용을 변경하는 방법은 무엇입니까?

  25. 25

    목록을 사용한 Numpy 배열 인덱싱 : arr [:] [li]와 arr [:, li]의 차이점

  26. 26

    라인 인덱싱을 유지하면서 2D numpy 배열을 열 벡터로 재정렬

  27. 27

    인덱스로 numpy 배열 인쇄

  28. 28

    numpy 배열에 대한 다중 인덱스 : IndexError : numpy.ndarray 유형의 슬라이스 항목을 정수로 강제 변환하지 못했습니다.

  29. 29

    파이썬 numpy 배열 정수 인덱스 플랫 슬라이스 할당

뜨겁다태그

보관