728x90
NumPy?
행렬이나 대규모 다차원 배열을 쉽게 처리하게 해주는 파이썬 라이브러리.
1차원~n차원 데이터를 표현한다.
# 배열 만들기
import numpy as np
arr = np.array([1, 3, 5, 7])
print(arr)
# {1, 3, 5, 7}
print(type(arr))
# <class 'numpy.ndarray'>
# 2차원 벡터 5x5 배열을 만들어 0으로 초기화 해준다. 혹시 모를 이전의 흔적을 지우기 위함
arr = np.zeros((5, 5))
print(arr)
"""
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
"""
# 빈 값으로 만들어진 2차원 벡터 3x3 배열 만들기
arr = np.empty((3, 3))
print(arr)
"""
[[0.00e+000 0.00e+000 0.00e+000]
[0.00e+000 0.00e+000 4.98e-321]
[0.00e+000 0.00e+000 0.00e+000]]
"""
# 1로 되어 있는 3x3 배열 만들기
arr = np.ones((3, 3))
print(arr)
"""
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
"""
# 배열 생성하기 0부터 "()안의 숫자 -1"까지 생성
arr = np.arange(8)
print(arr)
"""
[0 1 2 3 4 5 6 7]
"""
arr = np.array([[3, 5, 8], [2, 5, 4]])
print(arr.shape)
# (2, 3) --> 2x3 배열
print(arr.ndim)
# 2
print(arr.dtype)
# int32
# more float size, more amount
arr_float = arr.astype(np.float64) # arr를 64비트 부동소수점 자료형으로 변환
print(arr_float.dtype)
# float64
arr1 = np.array([[1, 3, 5], [4, 3, 6]])
arr2 = np.array([[3, 5, 1], [5, 8, 1]])
arr3 = np.array([[[4, 6, 8]], [[4, 3, 6,]]])
print(arr3.ndim)
# 3
# + 연산
print(arr1+arr2)
"""
[[ 4 8 6]
[ 9 11 7]]
"""
# + 연산 이렇게 해도 됨
print(np.add(arr1, arr2))
# * 연산
print(arr1*arr2)
"""
[[ 3 15 5]
[20 24 6]]
"""
# * 연산 이렇게 해도 됨
print(np.multiply(arr1, arr2))
# ndarray 배열 슬라이싱
arr = np.array([[3, 5, 1], [3, 5, 6], [7, 1, 2]])
print(arr.ndim)
# 2
arr1 = arr[:2, 1:3]
print(arr1)
"""
[[5 1]
[5 6]]
"""
print(arr[0, 2])
# 1
print(arr[[0, 1, 2], [2, 2, 2]]) # index 0, 1, 2에서 세번째 값 가져오기
# [1 6 2]
idx = arr > 3
print(idx)
"""
[[False True False]
[False True True]
[ True False False]]
"""
print(arr[idx]) # 3보다 큰 값
# [5 5 6 7]
# 레드와인 데이터 연습.
# 데이터 불러오기. 첫 줄 건너뛰고, 구별자는 ','로
redwine_data = np.loadtxt(fname='winequality-red.csv', delimiter=',', skiprows=1)
print(redwine_data)
"""
[[ 7.4 0.7 0. ... 0.56 9.4 5. ]
[ 7.8 0.88 0. ... 0.68 9.8 5. ]
[ 7.8 0.76 0.04 ... 0.65 9.8 5. ]
...
[ 6.3 0.51 0.13 ... 0.75 11. 6. ]
[ 5.9 0.645 0.12 ... 0.71 10.2 5. ]
[ 6. 0.31 0.47 ... 0.66 11. 6. ]]
"""
# 각각 12개 columns의 합계가 나온다.
print(redwine_data.sum(axis=0))
"""
[13303.1 843.985 433.29 4059.55 139.859 25384.
74302. 1593.79794 5294.47 1052.38 16666.35 9012. ]
"""
# 각각 12개 columns의 평균이 나온다.
print(redwine_data.mean(axis=0))
"""
[13303.1 843.985 433.29 4059.55 139.859 25384.
74302. 1593.79794 5294.47 1052.38 16666.35 9012. ]
[ 8.31963727 0.52782051 0.27097561 2.5388055 0.08746654 15.87492183
46.46779237 0.99674668 3.3111132 0.65814884 10.42298311 5.63602251]
"""
# 전체 데이터의 0(첫번째) columns를 슬라이싱 fixed acid column이 나온다.
test = redwine_data[:, 0]
print(test)
# [7.4 7.8 7.8 ... 6.3 5.9 6. ]
print(test.mean())
# 8.31963727329581
print(redwine_data.max(axis=0))
"""
[ 15.9 1.58 1. 15.5 0.611 72. 289.
1.00369 4.01 2. 14.9 8. ]
"""
print(redwine_data.min(axis=0))
"""
[4.6 0.12 0. 0.9 0.012 1. 6. 0.99007 2.74
0.33 8.4 3. ]
"""728x90
'MS AI School' 카테고리의 다른 글
| DAY 14 - Flask, Web crawling(BS4), MySQL (0) | 2022.11.01 |
|---|---|
| DAY 13 - Matplotlib (0) | 2022.11.01 |
| DAY 11 - Azure 애저 Cognitive Service (0) | 2022.11.01 |
| GitHub 튜토리얼. 깃허브 사용법 (0) | 2022.10.21 |
| Day 7 - JQUERY 사용하기(1) (0) | 2022.10.20 |