【관련 추천: 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인 경우 조건에 맞는 각 요소의 좌표를 반환하고 튜플 형식으로 반환합니다.