Numpy의 배열 검색 np.where 방법 상세 소개
numpy.where (condition[, x, y])
numpy.where () 에는 다음 두 가지 방법이 있습니다.1. np.where(condition, x, y)
조건 충족(condition), 출력 x, 출력 y 충족하지 않습니다.
만약 1차원 그룹이라면 [xv if c else yv for (c, xv, yv) in zip (condition, x, y)]
>>> aa = np.arange(10)
>>> np.where(aa,1,-1)
array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0 False, -1
>>> np.where(aa > 5,1,-1)
array([-1, -1, -1, -1, -1, -1, 1, 1, 1, 1])
>>> np.where([[True,False], [True,True]], #
[[1,2], [3,4]],
[[9,8], [7,6]])
array([[1, 8],
[3, 4]])
위의 이 예의 조건은 [[True, False], [True, False]]로 각각 마지막 출력 결과에 대응하는 네 개의 값이다.첫 번째 값은 [1,9]에서 선택하고 조건이 True이기 때문에 1을 선택합니다.두 번째 값은 [2,8]에서 선택하고 조건이 False이기 때문에 8을 선택하고 그 뒤로 유추한다.이와 유사한 문제는 다음 예제를 참조하십시오.
>>> a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
[["chosen","not chosen"], ["chosen","not chosen"]],
[["not chosen","chosen"], ["not chosen","chosen"]])
array([['chosen', 'chosen'],
['chosen', 'chosen']], dtype='<U10')
2. np.where(condition)
조건(condition)만 있고 x와 y가 없으면 조건(즉 0이 아닌) 요소를 만족시키는 좌표 (numpy.nonzero와 동일) 를 출력합니다.이곳의 좌표는tuple의 형식으로 제시된다. 보통 원수조는 몇 차원이고 출력된tuple에는 몇 개의 수조가 포함되어 있으며 각각 조건원소에 부합되는 각 차원 좌표에 대응한다.
>>> a = np.array([2,4,6,8,10])
>>> np.where(a > 5) #
(array([2, 3, 4]),)
>>> a[np.where(a > 5)] # a[a>5]
array([ 6, 8, 10])
>>> np.where([[0, 1], [1, 0]])
(array([0, 1]), array([1, 0]))
위의 이 예 조건 중 [[0,1],[1,0]의 진가는 두 개의 1이고 각자의 1차원 좌표는 [0,1], 2차원 좌표는 [1,0]이다.다음은 복잡한 예입니다.
>>> a = np.arange(27).reshape(3,3,3)
>>> a
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, 25, 26]]])
>>> np.where(a > 5)
(array([0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2]),
array([2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 2, 2, 2]),
array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]))
#
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]]
그래서 np.where는 모든 요소에 대응하는 좌표를 출력합니다. 원수조는 3차원이기 때문에tuple에는 세 개의 수조가 있습니다.보충하다
np.where와 np.searchsorted는 Numpy 그룹 검색의 일부분입니다. 간단한 where를 소개합니다.
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.where(a == 5)
print(b)
where 방법은 원조로 돌아갈 것이다
(array([4]),)
이 밖에 홀수와 짝수를 검색하는 방법도 소개할 것이다.이를 통해 알 수 있듯이 간단하게 잔수를 판단하면 된다
c = np.where(a%2 == 0)
print(c)
d = np.where(a%2 == 1)
print(d)
반환:
(array([1, 3]),)
(array([0, 2, 4]),)
np.where 방법은 여기까지입니다.Numpy의 그룹 검색에 대한 np입니다.where 방법에 대한 상세한 소개는 여기까지 하겠습니다.where 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python 기반 Numpy의 기본 사용법 상세 정보a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])#1차원 그룹 b = np.array([[1,2],[3,4]])#2차원 그룹 1.2 시퀀스 배열 numpy.random.이 방법...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.