numpy 중 벡터 식 3 목 연산 자 에 대한 상세 한 설명

데이터 선별 기능 을 사용 하면 x if condition else 의 논리 로 이 루어 질 수 있 습 니 다.순수 Python 을 사용한다 면,각 그룹의 요소 조합 에 대해 끊임없이 교체 하 는 방식 으로 해당 하 는 판단 과 선별 을 할 수 있 습 니 다.그러나 numpy 의 벡터 화 계 를 사용 하면 연산 과정 을 크게 가속 화 할 수 있다.
numpy 에 이 세 가지 연산 의 벡터 버 전이 있 습 니 다 numpy.where.where 방법 은 세 개의 파 라 메 터 를 받 을 수 있 고 첫 번 째 파 라 메 터 는 조건 벡터 이 며 두 번 째,세 번 째 파 라 메 터 는 행렬 일 수도 있 고 스칼라 일 수도 있다.다음은 해당 기능 의 순 Python 기능 실현 과 벡터 방식 실현 을 해 보 겠 습 니 다.
기록 은 다음 과 같 습 니 다.

In [76]: xarr = np.array([1.1,1.2,1.3,1.4,1.5])

In [77]: yarr = xarr + 1


In [78]: xarr
Out[78]: array([ 1.1, 1.2, 1.3, 1.4, 1.5])


In [79]: yarr
Out[79]: array([ 2.1, 2.2, 2.3, 2.4, 2.5])


In [80]: cond = np.array([True,False,True,True,False])


In [81]: cond
Out[81]: array([ True, False, True, True, False], dtype=bool)


In [82]: result1 = [(x if c else y) for x,y,c in zip(xarr,yarr,cond)]


In [83]: result1
Out[83]: [1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]


In [84]: result2 = np.where(cond,xarr,yarr)


In [85]: result2
Out[85]: array([ 1.1, 2.2, 1.3, 1.4, 2.5])
부동 소수점 표시 에 있어 서 두 가 지 는 약간의 차이 가 있 고 소수점 뒤에 여러 자리 가 있 으 며 보통 수치 표시 에 있어 서 무시 할 수 있다.그러나 여기 서 두 결과 의 일치 성 판단 을 해 야 한다.왜냐하면 이전에 도 Python 이 부동 소수점 표현 에서 기계 로 인해 발생 하 는 차 이 를 본 적 이 있 기 때문이다.
테스트 결 과 는 다음 과 같다.

In [87]: result1 == result2
Out[87]: array([ True, True, True, True, True], dtype=bool)
위의 결 과 를 통 해 알 수 있 듯 이 두 계산 결 과 는 일치한다.
이상 의 이 numpy 에서 벡터 식 세 가지 연산 자 에 대한 상세 한 설명 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기