파이썬으로 행렬, 수치 계산 등 데이터를 다루기 쉽게 도와주는 유명 데이터 조작 라이브러리
| import numpy as np |
| |
| |
| arr = np.array([1, 2, 3]) |
| print(arr) |
| >> [1 2 3] |
| |
| print(type(arr)) |
| >> <class 'numpy.ndarray'> |
| |
| |
| arr = np.array([[1, 2, 3], |
| [4, 5, 6]]) |
| print(arr) |
| >> [[1 2 3] |
| [4 5 6]] |
| |
| |
| tpl = (4, 5, 6) |
| arr = np.array(tpl) |
| print(arr) |
| >> [4 5 6] |
| |
| |
| lst = [[1, 2, 3], [4, 5, 6]] |
| arr = np.array(lst) |
| print(arr) |
| >> [[1 2 3] |
| [4 5 6]] |
np.zeros((3, 6))
- 배열의 형상
- 형상이란 N차원 배열에서 그 배열의 ‘각 차원의 크기(원소 수)’
- 코드
| |
| arr = np.array([1, 2, 3]) |
| print(arr.shape) |
| >> (3,) |
| |
| arr2 = np.array([[1, 2, 3], [4, 5, 6]]) |
| print(arr2.shape) |
| >> (2, 3) |
| n2 = np.array([3, 6, 9]) |
| |
| print(n1.dot(n2)) |
| |
| >> 126 |
| # pd.Series의 옵션이 무엇이 있는지 확인 |
| # index => 할당값의 지정 이름, 중복 가능['a','a', 'b', 'c'] |
| # dtype => 대표적 : int, float, string, boolean 등 |
| series = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'], dtype=float) |
| series |
| series = pd.Series([10, 2, 5, 4], index=['a','b','c','d'], dtype=float) |
| series.sort_values(ascending=True) # 오름차순(기본값) |
series.sort_values(ascending=False)
- 값 재배열
- ex) np.arange(12) → array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
- ex) np.arange(12).reshape(3, 4) → array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])
- 코드
| np.arange(12) |
| >> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) |
| |
| np.arange(12).reshape(3, 4) |
| >> array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]) |
- ndim → 해당 배열의 차원
- size → 해당 배열의 칸 수
- 코드
| arr = np.array([1, 2, 3]) |
| print(arr.ndim) |
| >> 1 |
| |
| print(arr.size) |
| >> 3 |
| |
| arr2 = np.array([[1, 2, 3],[4, 5, 6]]) |
| print(arr2.ndim) |
| >> 2 |
| |
| print(arr2.size) |
| >> 6 |
| arr = np.array([1.1, 2.2, 3.3]) |
| print(arr.dtype) |
| >>> float64 |
| |
| arr = np.array([1.1, 2.2, 3.3], dtype=int) |
| print(arr) |
| >> [1 2 3] |
| |
| print(arr.dtype) |
| >> int32 |
| |
| arr = np.array([1, 2, 3, 0], dtype=bool) |
| print(arr) |
| >> [True True True False] |
| print(np.arange(10)) |
| > [0 1 2 3 4 5 6 7 8 9] |
| |
| print(np.arange(5, 10)) |
| >> [5 6 7 8 9] |
| data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
| |
| |
| answer =[] |
| |
| for di in data: |
| answer.append(2 * di) |
| answer |
| |
| |
| x = np.array(data) |
| x |
| >> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) |
| |
| 2 * x |
| >> array([0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) |
| |
| L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
| print(2 * L) |
| >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |