【관련 추천: Python3 동영상 튜토리얼】
첫 번째np.where(condition, x, y)
, 즉 조건은 조건이 충족되면 출력은 x이고, 조건이 충족되지 않으면 출력은 y 입니다. 코드로 직접 이동하세요:
a = np.arange(10) //array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) print(np.where(a > 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]])
할 수 있습니다. 첫 번째 줄의 bool 값은 값을 취하는지 여부를 나타내는 조건을 나타냅니다. 즉, 먼저 [True, False]를 보면, 즉 첫 번째 True 값은 첫 번째 행이 1을 취한다는 의미입니다. 값의 첫 번째 행의 [1, 2], 아래의 9를 취하는 대신 False는 첫 번째 행 [1, 2]를 취하지 않고 두 번째 행 [9, 8]에서 8을 취함을 의미합니다. [3, 4]와 동일합니다.
이해의 편의를 위해 또 다른 예를 들어 보겠습니다. 첫 번째 행에서
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')
a>5True 를 사용하고 첫 번째 행의 첫 번째 값을 취하고, a<5는 두 번째 값을 사용합니다. 두 번째 행, 아래에도 동일하게 적용됩니다.
첫 번째 방법을 이해한 후 np.where의 두 번째 방법을 살펴보겠습니다.
즉, np.where(condition), x 및 조건(condition)만 있습니다. y를 입력한 다음 조건(즉, 0이 아님)을 충족하는 요소의 좌표를 출력합니다(numpy.nonzero와 동일). 여기서 좌표는 튜플 형식으로 제공됩니다. 일반적으로 출력 튜플에는 조건을 충족하는 요소의 각 차원 좌표에 해당하는 여러 배열이 포함됩니다.
>>> a = np.array([2,4,6,8,10]) >>> np.where(a > 5) //(array([2, 3, 4]),) 返回索引值 >>> a[np.where(a > 5)] //array([ 6, 8, 10]) 返回元素值,即a[索引]
제가 본 코드 예를 들어주세요.
a = array([[0., 1.], [0., 1.], [0., 1.], [0., 1.], [0., 1.], [0., 1.], [0., 1.], [0., 1.], [1., 0.], [0., 1.], [0., 1.], [0., 1.], [1., 0.], [1., 0.], [0., 1.], [0., 1.], [1., 0.], [0., 1.], [1., 0.], [0., 1.]]) np.where(a == 1) //(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, // 17, 18, 19], dtype=int64), // array([1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1], // dtype=int64))
반환된 두 개의 배열 구성 요소는 어떤 행과 어떤 값이 1인지 나타냅니다. 따라서 결과의 첫 번째 배열 배열은 행 인덱스를 나타내고, 두 개의 배열 배열은 브로큰 실버 인덱스 1인 열 인덱스입니다.
1.np.where(condition,x,y) where에 3개의 매개변수가 있는 경우, 첫 번째 하나 매개변수는 조건을 나타냅니다. 조건이 true인 경우 where 메소드는 x를 반환합니다. 조건이 true가 아닌 경우 where는 y
2.np.where(condition)를 반환합니다. where에 매개변수가 하나만 있는 경우 해당 매개변수는 조건이 true인 경우 조건에 맞는 각 요소의 좌표를 반환하고 튜플 형식으로 반환합니다.
3. 조건이 여러 개인 경우 &는 or를 의미합니다. 예를 들어, a = np.where((0x, y는 a와 동일한 크기를 유지해야 합니다. R 예: reimport numpy as np
data = np.array([[0, 2, 0],
[3, 1, 2],
[0, 4, 0]])
new_data = np.where((data>= 0) & (data<=2), np.ones_like(data), np.zeros_like(data))
print(new_data)
[[1 1 1]
[0 1 1][1 0 1]]값을 반환하고, 만족하지 않으면 np.zeros_like(data)해당 좌표
이를 통해 데이터의 각 요소가 데이터 & gt; data<=2, 만족하면 np.ones_like(data)
해당 좌표 값을 반환합니다. . 물론, x와 y는 조건과 동일한 차원을 갖는 한 다른 값으로 변경될 수 있습니다. 【관련 추천: Python3 비디오 튜토리얼
】위 내용은 np.where() 코드 애플리케이션의 Python 상세 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!