8일차) 넘파이 (8) - 完(임시)

BinBin·2022년 1월 12일
1

머신러닝 공부

목록 보기
10/10
post-thumbnail

일단은 이 포스팅을 마지막으로 넘파이 시리즈는 마무리할 것 같습니다.
아마 이후에도 간헐적으로 게시를 할 것 같긴한데 판다스나 다른 라이브러리들을
리뷰하면서 올릴 예정입니다.

여러 차원을 평평하게~ ravel( )

ravel()함수는 다차원 ndarray를 1차원으로 만들 때 자주 사용하는 함수입니다.

array1 = np.array([[2, 4, 1, 3], [5, 8, 9, 11], [14, 4, 21, 9]])
print(np.ravel(array1))

2차원 형태의 ndarray를 1차원으로 만들고 싶을 때 ravel 함수를 사용해서 이를 실행하면

[ 2  4  1  3  5  8  9 11 14  4 21  9]

이와 같이 1차원 ndarray로 바뀐 것을 보실 수 있습니다.

여러 차원을 평평하게~2 flatten( )

이 함수도 위 ravel 처럼 자주 쓰이는 함수입니다.

array1 = np.array([[2, 4, 1, 3], [5, 8, 9, 11], [14, 4, 21, 9]])

print(array1.flatten())
[ 2  4  1  3  5  8  9 11 14  4 21  9]

ravel을 사용했을 때와 똑같은 결과가 나오게 됩니다.

그럼 ravel과 flatten의 차이는 무엇일까요?

ravel( ) VS flattten( ) 🥊🥊

이 둘의 역할은 똑같은데 과연 어떤 차이가 있을까요?
둘 다 다차원 ndarray를 1차원으로 바꿔주는 역할을 하는데
여기서 바꿔주는 과정에서 ravel은 원본을 수정하고 flatten은 원본을 복사해서 그 것을 이용합니다 따라서 '원본 복사'과정을 거치는 flatten의 실행 속도가 더 느립니다.

이상 넘파이 포스팅을 마치겠습니다.

profile
빅데이터에 관심이 많은 대학생입니다

0개의 댓글