반응형
다음을 수행하는 데 도움이 될 한 줄 솔루션을 찾고 있습니다.
내가 가지고 있다고 가정
array = np.array([10, 20, 30, 40, 50])
입력 순서에 따라 재정렬하고 싶습니다. arrange
라는 numpy 함수가 있으면 다음을 수행합니다.
newarray = np.arrange(array, [1, 0, 3, 4, 2])
print newarray
[20, 10, 40, 50, 30]
공식적으로 재정렬 할 배열이 m x n이고 "인덱스"배열이 1 x n 인 경우 순서는 "인덱스"라는 배열에 의해 결정됩니다.
numpy에는 이와 같은 기능이 있습니까?
해결 방법
"인덱스"목록을 직접 사용할 수도 있고 인덱스 배열도 사용할 수 있습니다.
>>> arr = np.array([10, 20, 30, 40, 50])
>>> idx = [1, 0, 3, 4, 2]
>>> arr[idx]
array([20, 10, 40, 50, 30])
idx
가 이미 ndarray
이고 list
가 아닌 경우 어느 쪽이든 작동하더라도 훨씬 더 빠른 경향이 있습니다.
>>> %timeit arr[idx]
100000 loops, best of 3: 2.11 µs per loop
>>> ai = np.array(idx)
>>> %timeit arr[ai]
1000000 loops, best of 3: 296 ns per loop
참조 페이지 https://stackoverflow.com/questions/26194389
반응형
'파이썬' 카테고리의 다른 글
파이썬 Filter rows of a numpy array? (0) | 2020.12.06 |
---|---|
파이썬 팬더 그룹 후 적용 병렬화 (0) | 2020.12.06 |
파이썬 Mac + Anaconda에서 Qt 디자이너 앱은 어디에 있습니까? (0) | 2020.12.06 |
파이썬 How can I randomly choose a maths operator and ask recurring maths questions with it? (0) | 2020.12.06 |
파이썬 how to use python2.7 pip instead of default pip (1) | 2020.12.06 |
댓글