2017-11-07 15 views
1

예를 들어 모양이 (10,10)이라고 가정 해 봅니다. 이제이 배열에 np.exp()를 적용하고 조건을 만족하는 특정 요소 만 적용하려고합니다. 예를 들어 0 또는 1이 아닌 모든 요소에 np.exp를 적용하려고합니다. 배열의 각 요소를 반복하는 for 루프를 사용하지 않고 수행 할 수있는 방법이 있습니까?너피 (Numpy) 배열은 일부 요소에만 함수를 적용합니다.

+0

예. Numpy는 [고급 색인 생성] (https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html)과 [where] (https://docs.scipy.org/) doc/numpy-1.13.0/reference/generated/numpy.where.html) 함수를 사용하는 것이 좋습니다. – armatita

+0

아래의 답변이 유용 할 경우 답변 옆에있는 체크 표시를 클릭하여 회색으로 표시되지 않도록 채워 넣으십시오. 이제까지 유용하다고 생각되는 질문에 대해 상향 투표를 수여 할 수있는 특권을 얻었습니다. – vestland

답변

1

이것은 기본적인 numpy 작업으로 달성 할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.

A = np.random.randint(0,5,size=(10,10)).astype(float) # data 
goods = (A!=0) & (A!=1) # 10 x 10 boolean array 
A[goods] = np.exp(A[goods]) # boolean indexing