Python/NumPy | Pandas 66

[Python] NumPy - 배열의 연산 2

개요 2022.11.19 - [Python] NumPy - 배열의 연산 1에 이어 배열의 연산 관련된 부분을 마저 정리한다. 차원 축소 연산 행렬에서 하나의 행에 있는 원소를 하나의 데이터 집합으로 보고 최댓값 또는 최솟값, 평균값 등을 구하면 결괏값으로 각 행에 대한 하나의 숫자, 1차원 벡터가 구해진다. 이러한 연산을 차원 축소(dimension reduction) 연산이라고 한다. NumPy는 다음과 같은 차원 축소 연산 함수를 지원한다. min/max : 배열의 최소값/최대값 x = np.arange(5) x.min(), x.max() # 실행 결과 (0, 4) argmin, argmax : 배열의 최솟값/최댓값의 위치 x = np.array([4, 2, -1, 3]) x.argmin(), x.a..

[Python] NumPy - 배열의 연산 1

벡터화 연산 NumPy가 지원하는 벡터화 연산을 사용하면 반복문을 명시적으로 사용하지 않아도 배열의 모든 원소에 대한 반복 연산을 할 수 있다. 이로 인해 선형 대수 공식과 동일한 형태로 Python 코드를 작성할 수 있게 된다. 선형 대수에서 두 벡터의 합은 다음과 같이 구한다. $$ x = \begin{bmatrix}1 \\ 2 \\ 3 \\ \vdots \\ 10000 \end{bmatrix}, \;\;\;\; y = \begin{bmatrix}10001 \\ 10002 \\ 10003 \\ \vdots \\ 20000 \end{bmatrix}, $$ 일 때, 두 벡터의 합 $$ z = x + y $$ 은 다음과 같이 구한다. $$ \begin{bmatrix}1 \\ 2 \\ 3 \\ \vdots ..

[Python] Numpy - 배열의 생성과 변형 2

개요 2022.11.11 - [Python] NumPy - 배열 1 2022.11.12 - [Python] NumPy - 배열 2 (인덱싱과 슬라이싱) 2022.11.13 - [Python] NumPy - 배열의 생성과 변형 1 에 이어 NumPy에 대해서 계속 정리한다. 배열의 크기 변형 reshape reshape 함수로 배열 내 데이터는 유지하면서 형태를 변경할 수 있다. a = np.arange(10) a a.reshape(2, 5) # 실행 결과 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) 사용하는 원소의 개수가 정해져 있기 때문에 매개변수로 전달하는 튜플 중 하나가 -1이면, 자동으로 차원을 계산..

[Python] NumPy - 배열의 생성과 변형 1

개요 2022.11.11 - [Python] NumPy - 배열 1 2022.11.12 - [Python] NumPy - 배열 2 (인덱싱과 슬라이싱) 에 이어 NumPy에 대해서 계속 정리한다. 자료형 NumPy의 배열(ndarray 클래스 객체) 내 원소는 모두 같은 자료형이어야 한다. array 함수로 배열 생성 시 dtype 인수를 사용하여 자료형을 명시적으로 지정할 수 있다. 전달한 매개변수가 없으면 타입을 추론하게 된다. 자료형을 지정할 때는 아래와 같은 dtype 접두사 + 바이트/글자 수를 전달하여 지정한다. 숫자는 생략할 수 있고, 생략 시에는 OS에 따라 적절한 크기로 지정된다. dtype 접두사 설명 사용 예 b 불리언 b (참 혹은 거짓) i 정수 i8 (64비트) u 부호 없는 정..

[Python] NumPy - 배열 2 (인덱싱과 슬라이싱)

개요 2022.11.11 - [Python] NumPy - 배열 1에 이어 이번 글에서는 배열의 인덱싱과 슬라이싱에 대해 정리한다. 인덱싱 1차원 배열의 인덱싱은 리스트의 인덱싱과 동일하다. a = np.array(range(0, 9)) a[2] 실행 결과 2 다차원 배열인 경우에는 쉼표를 이용하여 접근할 수 있다. 쉼표로 구분된 차원은 축(axis)이라고 한다. b= np.array([[10, 20, 30, 40], [50, 60, 70, 80]]) b # 2행 3열 b[1, 2] 실행 결과 array([[10, 20, 30, 40], [50, 60, 70, 80]]) 70 슬라이싱 다차원 배열을 슬라이싱할 때는 쉼표와 일반적인 Python 슬라이싱을 함께 사용한다. b = np.array([[10, ..

[Python] NumPy - 배열 1

NumPy 수치해석, 선형 대수(linear algebra) 계산 기능을 제공하는 Python 패키지로, 자료형이 고정된 다차원 배열 클래스인 ndarray 클래스와 벡터화 연산(vectorized operation)을 지원한다. CPython에서만 동작한다는 특징을 가지며, 넘파이라고 읽는다. 직접 데이터 분석을 할 일은 없는데, 관련 소스를 볼 일이 생기는 것 같아 NumPy와 Pandas 개념을 정리해두려고 한다. 이 글은 기본적인 배열 생성에 대해서 정리한다. 배열 (array) 많은 숫자 데이터를 하나의 변수에 저장하여 관리할 때 속도가 느리고 메모리를 많이 차지하는 리스트보다 배열을 사용하는 것이 적은 메모리로 많은 데이터를 빠르게 처리할 수 있다. 배열을 리스트와 비슷하지만 다음과 같은 점에..