코딩 공부/Numpy
-
[ Numpy ] 파이썬 라이브러리 넘파이_팬시 색인코딩 공부/Numpy 2021. 7. 16. 15:48
이번에는 넘파이의 팬시 색인에 대해서 간단하게 살펴보고자 합니다. 팬시 색인은 정수 배열을 사용한 색인을 설명하기 위해서 넘파이에서 차용한 단어입니다. 다음과 같은 넘파이 배열이 있을 때를 생각해봅시다. 배열에서 특정 순서로 로우를 선택하고 싶다면 원하는 순서가 명시된 정수가 담긴 넘파이 리스트를 넘기면 되는 것입니다. 순서를 명시한 리스트로 팬시 색인을 하게 되면 4번째 로우, 3번째 로우, 0번째 로우, 6번째 로우 순서로 색인을 할 수 있습니다. 색인을 음수로 설정하면 끝에서부터 로우를 선택합니다. 다차원 색인 배열을 넘기는 것은 조금 다르게 동작합니다. 각각의 색인 튜플에 해당하는 1차원 배열이 선택됩니다. 팬시 색인은 선택된 데이터를 새로운 데이터로 복사합니다.
-
[ Numpy ] 파이썬 라이브러리 넘파이_ 슬라이스코딩 공부/Numpy 2021. 7. 15. 16:33
이번에는 넘파이 배열의 슬라이싱에 대해서 살펴봅시다. (1) 1차원 배열 1차원 배열의 경우 익숙한 문법으로 슬라이싱할 수 있습니다. (2) 2차원 배열 2차원 배열부터 조금은 혼동이 올 수 있습니다. arr2d[:2] 는 arr2d의 시작부터 두 번째 로우까지의 선택이라고 생각하면 이해하는데 도움이 될 수 있습니다. 여기서 슬라이싱된 조각 배열들의 차원에 주목할 필요가 있습니다. 보면 같은 [7,8,9] 를 반환하는데 하나는 shape가 (3,) 이고 하나는 (1,3)인 것을 볼 수 있습니다. arr2d[2,:] 이는 정수 색인과 슬라이스를 함께 사용해서 한 차원 낮은 결과를 얻을 수 있고 arr2d[2:,:] 이는 모두 슬라이스를 사용했기 때문에 원래 차원을 얻을 수 있습니다. 슬라이스도 마찬가지로 ..
-
[ Numpy ] 파이썬 라이브러리 넘파이 _ 배열 색인코딩 공부/Numpy 2021. 7. 15. 15:10
이번에는 넘파이 배열 색인과 슬라이싱에 대해서 다루겠습니다. 데이터의 부분집합 또는 개별 요소를 선택하는 방법이라고 생각하시면 되는데, 1차원 배열에서는 파이썬 리스트와 비슷하게 동작합니다. arr[5:8] = 12 처럼 슬라이싱된 배열 조각에 스칼라 값을 대입하면 조각 전체로 브로드캐스팅됩니다. 리스트와의 중요한 차이점은 배열 조각은 원본 배열의 뷰라는 점인데, 데이터는 복사되지 않고 뷰에 대한 변경은 그대로 원본 배열에 반영된다는 점입니다. 이는 넘파이가 대용량의 데이터 처리를 목적으로 만들어졌기 때문에 데이터 복사로 인한 성능과 메모리 문제 발생을 막기 위해서 설계되었다고 합니다. 만약 데이터를 복사하여 얻고 싶다면 다음과 같이 .copy()를 통해서 복사한 배열 조각을 얻을 수 있습니다 . 다차원..
-
[ Numpy ] 파이썬 라이브러리 넘파이_산술 연산코딩 공부/Numpy 2021. 7. 15. 14:13
이번에는 넘파이의 기본적인 산술 연산을 알아봅시다. 넘파이 배열의 가장 큰 특징은 반복문을 작성하지 않고 데이터를 한번에 처리할 수 있다는 것입니다. (벡터화) (1) 같은 크기의 배열 간의 산술 연산은 배열의 각 원소 단위로 적용 arr = np.array([[1,2,3],[4,5,6]]) arr * arr [[ 1*1, 2*2, 3*3] ,[4*4, 5*5, 6*6]] 의 연산 즉 같은 자리에 위치한 원소들끼리 연산이 되는 것이다. 다른 산술 연산 역시 마찬가지이다. (2) 스칼라 인자가 포함된 산술 연산의 경우 모든 원소에 스칼라 인자가 적용된다. 모든 인자에 3이 곱해져서 결과가 나오는 것을 보실 수 있습니다. 마찬가지로 스칼라 인자가 모든 원소에 적용된 것을 보실 수 있습니다. (3) 같은 크기..
-
[ Numpy ] Python 라이브러리 Numpy _ 자료형 변환 방법코딩 공부/Numpy 2021. 7. 7. 17:55
이번에는 ndarray의 객체 dtype과 자료형 변환 방법에 대해서 알아봅시다. arr.dtype arr.astype() dtype은 ndarray가 메모리에 있는 특정 데이터를 해석하기 위해서 필요한 정보를 담고 있는 특수한 객체입니다. arr1 = np.array([1,2,3],dtype = np.float64) arr2 = np.array([1,2,3],dtype = np.int32) arr1.dtype arr2.dtype arr1은 float64 이고 arr2는 int32입니다. 자료형 옆에 숫자는 메모리 할당 크기입니다. 부동소수점은 64비트 정수형 32비트가 되겠습니다. ndarray의 astype 메서드를 통해서 다른 형으로 명시적 변환이 가능합니다. arr = np.array([1,2,3..
-
[ Numpy ] Python 라이브러리 Numpy_ndarray 생성 방법들코딩 공부/Numpy 2021. 7. 7. 17:47
이번에는 Numpy 배열 ndarray를 생성하는 다양한 방법에 대해서 알아보겠습니다. array : 입력 데이터를 ndarray로 변환하며 dtype을 명시하지 않은 경우 자료형을 추론하여 저장 기본적으로 입력 데이터는 복사 asarray : 입력 데이터를 ndarray로 변환하지만 입력 데이터가 이미 ndarray인 경우 복사가 일어나지 않음 arange : 내장 range 함수와 유사하지만 리스트 대신 ndarray를 반환한다. ones, ones_like : 주어진 dtype과 모양을 가지는 배열을 생성하고 내용을 모두 1로 초기화. ones_like는 주어진 배열과 동일하 모양과 dtype을 가지는 배열을 새로 생성하여 내용을 모두 1로 초기화 zeros, zeros_like : ones와 동일..
-
[ Numpy ] Python 라이브러리 Numpy_1코딩 공부/Numpy 2021. 7. 7. 17:25
Numpy는 numerical Python의 줄임말로 Python에서 산술 계산을 위한 가장 중요한 필수 패키지 중 하나입니다. Numpy에서 제공하는 것들은 다음과 같습니다. 효율적인 다차원 배열인 ndarray는 빠른 배열 계산과 유연한 브로드캐스팅 기능을 제공 반복문을 작성할 필요 없이 전체 데이터 배열을 빠르게 계산할 수 있는 표준 수학 함수 배열 데이터를 디스크에 쓰거나 읽을 수 있는 도구와 메모리에 적재된 파일을 다루는 도구 선형대수, 난수 생성기, 푸리에 변환 기능 Numpy 특징 넘파이는 내부적으로 데이터를 다른 내장 파이썬 객체와 구분된 연속된 메모리 블록에 저장한다. 넘파이 배열은 또한 내장 파이썬의 연속된 자료형들보다 훨씬 더 적은 메모리를 사용한다. 넘파이 연산은 파이선 반복문을 사..
-
[ Numpy ] Python 라이브러리 Numpy_0코딩 공부/Numpy 2021. 7. 7. 17:00
파이썬 라이브러리를 활용한 데이터 분석 책을 공부하면서 Numpy관련 내용을 정리하여 올릴 계획입니다. 파이썬으로 데이터를 다룰 때 가장 기초적인 라이브러리인 numpy 많이 사용하면서도 헷갈리는 내용들이 있었습니다. 이번 기회에 제대로 다시 공부하고자 합니다. numpy의 모든 내용을 다루지는 못하지만 책에 있는 내용들을 다루려고 합니다. numpy에 관한 자세한 내용은 Numpy공식 문서에도 자세하게 나와있으니 참고하면서 공부하면 도움이 될 것 같습니다.