Python Numpy.where() 함수

Sohaib Atiq 2023년1월30일
  1. numpy.where() 구문
  2. 예제 코드: [X, Y]제외numpy.where()
  3. 예제 코드: 1 차원 배열이있는numpy.where()
  4. 예제 코드: 2 차원 배열이있는numpy.where()
  5. 예제 코드: 여러 조건이있는numpy.where()
Python Numpy.where() 함수

Numpy.where() 함수는 입력 조건을 충족하는 배열의 색인을 생성합니다. y는 주어지지 않습니다. 또는 주어진 조건에 따라x 또는y의 배열 요소.

numpy.where() 구문

numpy.where(condition, [x, y])

매개 변수

condition array_like,True 또는False
조건이True이면 출력에x의 요소가 포함되고, 그렇지 않으면 출력에y의 요소가 포함됩니다.
x,y 반환이 생성되는 배열
(x, y)를 모두 전달하거나 전달하지 마십시오.

반환

배열을 반환합니다. conditionTrue이면 결과에 x 요소가 포함되고 conditionFalse이면 결과에 y 요소가 포함됩니다.

배열의 인덱스는x, y가 주어지지 않았습니다.

예제 코드: [X, Y]제외numpy.where()

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where(m > 3)

print(n)

출력:

(array([3, 4], dtype=int64),)

요소가 3보다 큰 m- a> 3의 색인을 반환합니다.

인덱스가 아닌 요소가 필요한 경우.

예제 코드: 1 차원 배열이있는numpy.where()

import numpy as np

m = np.where([True, False, True], [1,2,3], [4, 5, 6])

print(m)

출력:

[1 5 3]

조건이 1 차원 배열 인 경우 Numpy.where()함수는 조건 배열을 반복하고 조건 요소가 True인 경우 x에서 요소를 선택하고 조건 요소는 False입니다.

Numpy where 1-D 배열

예제 코드: 2 차원 배열이있는numpy.where()

import numpy as np

x = np.array([[10, 20, 30], [3, 50, 5]])
y = np.array([[70, 80, 90], [100, 110, 120]])
condition = np.where(x > 20, x, y)

print("Input array :")
print(x)
print(y)
print("Output array with condition applied:")
print(condition)

출력:

Input array :
[[10 20 30]
[ 3 50  5]]
[[ 70  80  90]
[100 110 120]]
Output array with condition applied:
[[ 70  80  30]
[100  50 120]]

x> 20의 조건을 x의 모든 요소에 적용하고, True이면 x의 요소를 출력으로, False이면 ‘y의 요소를 출력합니다.

작동 방식을 보여주기 위해 간단한 예제를 만듭니다.

import numpy as np

m = np.where(
    [[True, False, True], [False, True, False]],
    [[1, 2, 3], [4, 5, 6]],
    [[7, 8, 9], [10, 11, 12]],
)

print(m)

출력:

[[ 1  8  3]
 [10  5 12]]

Numpy where 1-D 배열

예제 코드: 여러 조건이있는numpy.where()

numpy.where()함수에 두 개 이상의 조건을 적용 할 수도 있습니다.

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where((m > 1) & (m < 5), m, 0)

print(n)

출력:

[0 2 3 4 0]

m> 1m <5의 여러 조건을 적용하고 요소가 두 조건을 모두 충족하면 요소를 반환합니다.

여러 조건 간의 논리는AND (&)로 제한되지 않고OR (|)도 허용됩니다.

import numpy as np

m = np.array([1, 2, 3, 4, 5])

n = np.where((m < 2) | (m > 4), m, 0)

print(n)

출력:

[1 0 0 0 5]