Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바 로그 레벨
- 스프링 부트
- Python
- REST API
- 완주하지못한선수
- h2 데이타베이스
- 머신러닝
- 사이킷런 회귀
- 컬렉션 프레임웍
- 프로그래머스
- 파이썬
- GIT
- conda remove
- 차원증가
- 알고리즘
- URI 원칙
- 스프링 부트3
- WinError5
- 컬렉션 인터페이스
- Java
- openai
- 쓰레드 풀
- db
- Selenium
- 자바 열거형
- 오라클
- 셀레니움
- 사이킷런
- streamlit
- oracle
Archives
- Today
- Total
노트 :
Numpy - np.where() 본문
코드를 보는데, 처음 보는 구문이 나와서 정리해보았다.
np.where(조건, x, y): 조건문을 만족할 때 x값을 반환하고, 아니면 y값을 반환한다.
다음은 사용 예제이다.
import numpy as np
a = np.arange(10)
b = np.where(a < 5, a, 10*a)
'''
a 출력 시 => array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b 출력 시 => array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])
'''
아래처럼 np.where() 메서드를 사용해서 ReLU 함수를 구현할 수 있다.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-50, 100, 10)
y = np.where(x > 0, x, 0)
plt.plot(x, y)
plt.title('ReLU')
plt.show()
아래는 평소에 내가 사용하던 방법이다.
import numpy as np
import matplotlib.pyplot as plt
x = [x for x in range(-50, 100, 10)]
y = []
for _ in range(-50, 100, 10):
y.append(max(_, 0))
plt.plot(x, y)
plt.title('ReLU')
plt.show()
np.where을 사용하는 게 더 깔끔해 보인다.
결과는 두 구문 모두 아래와 같다.
np.where은 사용방법이 간단해서 자주 사용하게 될 것 같다.
파이썬을 배운 지 꽤 됐는데 이렇게 모르는 구문을 마주칠 때마다 아직 많이 부족함을 느낀다ㅠ
'Python' 카테고리의 다른 글
Numpy - newaxis (0) | 2023.05.16 |
---|---|
Numpy - vstack, hstack (0) | 2023.04.18 |
Selenium - find_element / find_elements (0) | 2023.03.29 |
Selenium - 크롬드라이버 버전 오류 (0) | 2023.03.29 |
Random 모듈 (0) | 2023.03.28 |