2022. 6. 29. 13:36ㆍData Science/with Python(Numpy, Pandas …ect.)
Numpy Methods
암기 ❌! 구글링 ⭕
그래도 자주 사용하는 기본적인
몇 가지는 알아두는 것이 이용에도,
이해에도 좋으므로 아래 것들은
가능한 익숙해지기!
# 표준정규분포에서 random sampling을 한 원소를 가지는 5x3 행렬 만들기
mat1 = np.random.randn(5, 3)
# mat1에 절대값 씌우기
np.abs(mat1)
# mat1의 square root(제곱근) 구하기
np.sqrt(mat1)
제곱근의 경우 위와 같이 입력하면
Error는 아니지만 RuntimeWarning 발생한다.
그 이유는 mat1 값들 중 음수가 있어서 루트 안에
음수가 들어가게 되는 바람에 허수 발생해서 그런데,
imagnary numbers = nan 표시라고 뜬다.
compl = np.array(mat1, dtype=complex)
np.sqrt(compl)
만약 이 허수를 처리하고 싶다면 위와 같이
mat1의 타입을 바꿔주면 된다.
# mat1 제곱하기
np.squart(mat1)
# mat1의 지수값 구하기
np.exp(mat1)
# mat의 log값(자연로그) 구하기
np.log(mat1)
그리고 log의 밑은 음수가 될 수 없기 때문에
log값 역시 음수 부분은 nan이 발생한다.
# 상용로그
np.log10(mat1)
# 이진로그
np.log2(mat1)
# 부호 찾기
np.sign(mat1)
# 올림
np.ceil(mat1)
# 내림
np.floor(mat1)
# 존재하지 않는 값이 있는지 없는지 확인
## nan = not a number
np.isnan(mat1)
# 활용
np.isnan(np.log(mat1))
# +-무한대 여부 확인
np.isinf(mat1)
# 삼각함수 시리즈
np.sin(mat1)
np.cos(mat1)
np.tan(mat1)
np.tanh(mat1)
# 두 행렬 대소 비교
mat2 = np.random.randn(5, 3)
np.maximun(mat1, mat2)
Reshaping 과 Concatienation은
위에 것들 보다 좀 더 자주 쓰인다.
Reshaping array
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
이런 행렬을 일일히 손으로 타이핑하지
않고 편하게 만들 수 방법이 바로 reshape이다.
x = np.arrange(1,10)
output : array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# 이걸 3x3 행렬로 바꾸기 위해 reshape을 사용
x = np.arrange(1,10).reshape(3, 3)
transpose는 행과 열을 뒤집는 것을 말한다.
transpose 역시 reshape으로 가능하다.
# (1, 2, 3)을 transpose 하기
x2 = np.array([1, 2, 3]). reshape(3, 1)
row vector를 column vector로 전환.
Concatenation of arrys
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# arr1과 arr2를 이어 붙이는 식으로 합치고 싶다면?
np.concatenate([arr1, arr2])
좀 더 직관적인 방법도 있다.
# stacking vertically
np.vstack([arr1, arr2])
#stacking horizontally
np.hstack([arr1, arr2])
vertically는 말 그대로 수직방향으로
쌓는 거고, horizontally는 수평으로,
맨 처음과 같은 방식으로 잇는 것이다.
이걸 여기다 적을지,
Jupyter Notebook 글에 적을지 고민하다가
이쪽을 더 자주 볼 것 같아서 남겨놓는다.
주피터 노트북에서는 함수 내부 혹은
이름에 커서를 두고 shift+tab을 누르면
그 함수의 원형(틀)을 확인할 수 있다.
알아두면 두고두고 쓸 데가 많으니 기억해두자.
'Data Science > with Python(Numpy, Pandas …ect.)' 카테고리의 다른 글
Numpy performance test (0) | 2022.06.30 |
---|---|
Numpy Array Aggregation functions (0) | 2022.06.29 |
Numpy Indexing+Masking (0) | 2022.06.29 |
Numpy Operation (0) | 2022.06.29 |
Numpy Array 만들기 (0) | 2022.06.28 |