8일차) 넘파이 (8) - 完(임시)
일단은 이 포스팅을 마지막으로 넘파이 시리즈는 마무리할 것 같습니다.
아마 이후에도 간헐적으로 게시를 할 것 같긴한데 판다스나 다른 라이브러리들을
리뷰하면서 올릴 예정입니다.
여러 차원을 평평하게~ 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의 실행 속도가 더 느립니다.
이상 넘파이 포스팅을 마치겠습니다.
Author And Source
이 문제에 관하여(8일차) 넘파이 (8) - 完(임시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sblee109/8일차-넘파이-8-完임시저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)