-
[NumPy] np.ceil(), np.copysign(), np.intersect1d()Road to Data Analyst/Python 2022. 9. 12. 20:06
np.ceil()
소수 형태의 숫자를 해당 소수보다 크고 가장 가까운 정수로 변환시켜준다.
import numpy as np z = 7.12354 print(np.ceil(z))
결과값이 8.0이 나오는 것을 확인 할 수 있다.
np.copysign()
np.copysign(a, b)일 경우, a에 해당하는 값이 b의 부호를 따른다. a = 8, b = -4일 경우, a = -8로 바뀐다.
import numpy as np a = 8 b = -4 print(np.copysign(a, b))
결과값이 -8.0이 나오는 것을 확인 할 수 있다.
Practice
How to round away from zero a float array ?
(출처: https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_solutions.md)
import numpy as np z = np.random.uniform(-10, 10, (3,3)) print(z) print(np.copysign(np.ceil(np.abs(z)), z))
3x3사이즈의 -10부터 10의 균등분포하는 랜덤 값을 만들었다.
(1) np.abs(z)를 통해 마이너스 값들이 올림되어 균일분포에 영향을 미치지 않게 하기 위해 절댓값으로 우선 변환한다.
(2) np.ceil()를 통해 해당 값들을 올림해준다. z[1,1] = 3.2915... → 4
(3) 마이너스였던 값들을 원래대로 복구해주기 위해 np.copysign()을 이용해 마이너스였던 값들을 다시 마이너스로 변환시켜준다.
np.intersect1d()
일치하는 값들을 출력해줄때 사용되는 함수이다. 동일 값이 여러번 반복되어도 한번만 출력되는 성격을 가지고 있다.
Practice
How to find common values between two arrays?
(출처: https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_solutions.md)
z1 = np.random.randint(0, 10, 10) z2 = np.random.randint(0, 10, 10) print(z1) print(z2) print(np.intersect1d(z1, z2)) #repeated values will be deemed as one element.
8이라는 값이 z1과 z2에서 여러번 반복되었음에도 불구하고, np.intersect1d에서는 한번만 출력됨을 알 수 있다.
'Road to Data Analyst > Python' 카테고리의 다른 글
[pandas] Sort (0) 2023.01.18 [pandas] value_counts() 특정변수 least occurrence로 정렬하기 (0) 2022.09.24 [pandas] str.slice() & lambda - 데이터셋에서 맨 앞에 있는 화폐단위 삭제 및 float로 변환 (0) 2022.09.12 [pandas] agg() & sort_values() - 데이터셋에서 가장 많이 팔린 상품 찾기 (0) 2022.09.12 [NumPy] Problem set (0) 2022.06.13