반응형
Numpy에 존재하는 다양한 함수들
arange - 임의의 데이터를 만들 때 사용
# 넘파이가 가지고 있는 함수
import numpy as np
arr1 = np.arange(10)
print(arr1[:6])
print("="*50)
arr2 = np.arange(5,10)
print(arr2)
print("="*50)
arr3 = np.arange(1,10,2)
print(arr3)
print("="*50)
arr4 = np.arange(1,11)
print(arr4)
print("="*50)
arr5 = arr4.reshape((2,-1)) # 2차원 변환
print(arr5)
print("="*50)
arr6 = arr5.reshape(-1)
arr7 = arr5.flatten()
print(arr6)
print("="*50)
print(arr7)
print("="*50)
# [0,0,0,0,0]
arr1 = [0]*5
print(arr1)
print(type(arr1))
print("="*50)
arr2 = np.zeros(5)
print(arr2)
print(type(arr2))
print("="*50)
arr3 = np.zeros((3,3))
print(arr3)
print("="*50)
arr4 = arr3.flatten()
print(arr4)
print("="*50)
arr5 = np.ones(20)
print(arr5)
# [1,1,1,1,0,0]
arr1 = np.ones(4)
arr2 = np.zeros(2)
print(arr1)
print(arr2)
print("="*50)
# arr3 = arr1 + arr2
# print(arr3)
list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1 + list2
print(list3)
list4 = np.array(list1)
list5 = np.array(list2)
print(list4)
print(list5)
list6 = list4 + list5
print("="*50)
print(list6)
# 넘파이는 +로 배열을 합칠수 없다.
print(type(arr1))
print(type(list1))
print(type(list4))
# ndarray를 합치는 방법은 +가 아니라 concatenate
arr1 = np.ones(4)
arr2 = np.zeros(2)
conc_arr = np.concatenate((arr1,arr2))
print(conc_arr)
# axis 0이면 행, 1이면 열
arr1 = np.arange(1,13)
print(arr1)
arr2 = arr1.reshape((3,-1))
print(arr2)
# print(arr2[1,2])
print(arr2.sum())
print(arr2.sum(axis=0))
print(arr2.sum(axis=1))
arr1 = np.array([[1,2],[3,4]])
print(arr1)
print("="*50)
arr2 = np.array([[5,6],[7,8]])
print(arr2)
print("="*50)
v_arr = np.vstack((arr1,arr2)) # 두개의 array를 수직으로 합치는 것
h_arr = np.hstack((arr1,arr2)) # 두개의 array를 수평으로 합치는 것
print(v_arr)
print("="*50)
print(h_arr)
c_arr = np.concatenate((arr1,arr2)) # 두개의 array를 연결하는것
print("="*50)
print(c_arr)
d = v_arr.flatten()
print("="*50)
print(d)
# stack은 쌓아 올리다. (연산이 아니다)
bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,
31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,
35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0]
# 도미의 무게
bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,
500.0, 340.0, 600.0, 600.0, 700.0, 700.0, 610.0, 650.0, 575.0, 685.0, 620.0, 680.0,
700.0, 725.0, 720.0, 714.0, 850.0, 1000.0, 920.0, 955.0, 925.0, 975.0, 950.0]
arr_length = np.array(bream_length)
arr_weight = np.array(bream_weight)
# 2차원 배열로 만들어라
# [
# [25.4,242.0],
# [26.3,290.0]
# ]
temp1 = np.vstack((arr_length, arr_weight))
print(temp1)
print("="*50)
temp2 = np.hstack((arr_length, arr_weight))
print(temp2)
print("="*50)
temp3 = np.concatenate((arr_length, arr_weight))
print(temp3)
print("="*50)
arr1 = np.array([
[25.4, 26.3],
[242, 290],
[10.4, 15.3]
])
print(arr1.transpose())
arr2 = np.array([
[
[25, 26],
[8, 20],
],
[
[3, 4],
[10, 13]
]
])
print(arr2.transpose())
# 데이터 정제
# 1. vstack으로 합치고, 2. transpose 한다.
# transpose() : 열의 좌표값, 행의 좌표값을 바꾼다 / 행 과 열을 치환한다. / (a,b) → (b,a)
# 2차원 - Matrix(n1,n2)
# 각각의 행에서 같은 index끼리 합친다.
# Tensor는 세로방향으로 같은 index를 합친다.
arr_length = np.array(bream_length)
arr_weight = np.array(bream_weight)
bream_data = np.vstack((arr_length, arr_weight))
print(bream_data)
print("="*50)
print(bream_data.transpose())
column_stack 사용하기 : vstack과 transpose를 사용하였을 때와 동일한 결과가 나타난다.
# 데이터 정제
# 1. column_stack()
# 여러 1차원 array를 같은 인덱스끼리 합친다.
arr_length = np.array(bream_length)
arr_weight = np.array(bream_weight)
# bream_data = np.vstack((arr_length, arr_weight))
# print(bream_data)
bream_data = np.column_stack((arr_length, arr_weight))
print(bream_data)
# print(bream_data.transpose())
<시각화>
import matplotlib.pyplot as plt
# plt.scatter(bream_length, bream_weight)
plt.scatter(bream_data[:,0],bream_data[:,1])
plt.xlabel("길이")
plt.ylabel("무게")
plt.show()
반응형
'Programming > Python' 카테고리의 다른 글
Python Numpy 5강 - DB연결, 학습 (0) | 2021.10.20 |
---|---|
Python Numpy 4강 - 데이터 합쳐서 시각화 하기 (0) | 2021.10.20 |
Python Numpy 2강 - Slicing (0) | 2021.10.20 |
Python Numpy 1강 - 배열 (0) | 2021.10.20 |
Python 8강 - 데이터 크롤링 (0) | 2021.10.06 |