아주 기본적인 질문 :값을 변경
한다고 가정 내가 5 개 요소를 포함하는 1D NumPy와 배열 (A)이 있습니다
내가 추가 할 필요가A = np.array([ -4.0, 5.0, -3.5, 5.4, -5.9])
을, 5를 0보다 작은 A의 모든 원소에 적용합니다. for-looping없이 이것을 수행하는 방법은 무엇입니까?
아주 기본적인 질문 :값을 변경
한다고 가정 내가 5 개 요소를 포함하는 1D NumPy와 배열 (A)이 있습니다
내가 추가 할 필요가A = np.array([ -4.0, 5.0, -3.5, 5.4, -5.9])
을, 5를 0보다 작은 A의 모든 원소에 적용합니다. for-looping없이 이것을 수행하는 방법은 무엇입니까?
이 마스크를 사용하여 수행 할 수 있습니다 : 그것은 작동
A[A < 0] += 5
방법입니다 - 부울 배열을 반환 A < 0
표현. 각 셀은 일치하는 셀에 적용된 술어에 해당합니다. 현재 예제에서 :
A < 0 # [ True False True False True]
그런 다음 작업은 조건부와 일치하는 셀에만 적용됩니다. 따라서이 예에서는 True
세포에서만 작동합니다.
A = np.where(A < 0, A + 5, A)
그래, 작동합니다 –