Numpy
행렬 연산을 수행하는 라이브러리이다.
C언어로 만들어졌다.

import numpy
arr1=[1,2,3,4,5]
arr2=numpy.array([1,2,3,4,5])
print(type(arr1),type(arr2))
arr1*2
arr1*arr2
arr2*2
list(map(lambda a:a*2,arr1))
import numpy as np
arr1=np.array((42))
arr2=np.array((1,2,3,4))
arr3=np.array(((1,2),(3,4)))
arr4=np.array((((1,2),(3,4)),((4,5),(6,7))))
arr5=np.array((((((1,2),(3,4)),((4,5),(6,7)),((7,8),(9,0))))))
arr1,arr2,arr3,arr4,arr5
arr1.ndim,arr2.ndim,arr3.ndim,arr4.ndim,arr5.ndim
np.array([1,2,3,4],ndmin=5)
print(arr2[0])
print(arr3[1,0])
arr5=[[1,2,3],
[4,5,6]]
arr5[1][0]
arr4
print(arr4[1,0,0])
arr2
print(arr2[-1])
arr3
print(arr3[-1,-1])
arr2[1:3]
print(arr2[:-1])
print(arr2[::2])
arr3[:,:-1]
print(arr3.dtype)
arr = np.array(['apple', 'banana', 'cherry'])
print(arr.dtype)
import numpy as np
arr = np.array([1, 2, 3, 4], dtype='S')
print(arr)
print(arr.dtype)
arr = np.array([1, 2, 3, 4], dtype='i4')
print(arr)
print(arr.dtype)
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)
arr = np.array(['item1', '', 'item3'])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)
arr8=arr2.copy()
arr8[0]=10
print(arr2,arr8)
print(arr1.shape,arr1.ndim,len(arr1.shape))
print(arr2.shape,arr2.ndim,len(arr2.shape))
print(arr3.shape,arr3.ndim,len(arr3.shape))
print(arr4.shape,arr4.ndim,len(arr4.shape))
print(arr5.shape,arr5.ndim,len(arr5.shape))
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
print('shape of array :', arr.shape)
print(arr[0,0,0,0,1])
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
print(arr.shape)
# newarr = arr.reshape(4, 3)
# newarr = arr.copy().reshape(2,3,2)
# newarr = arr.copy().reshape(2,3,-1)
newarr = arr.copy().reshape(-1,2,3)
print(newarr.shape)
print(newarr)
print(newarr.base)
newarr[0,0,0]=13
print(arr,newarr.base)
arr4.reshape(-1)
arr4
arr = np.array([1, 2, 3])
for x in arr:
print(x)
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x in arr:
for y in x:
print(y)
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
for x in arr:
for y in x:
for z in y:
print(z)
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
for x in np.nditer(arr):
print(x)
arr = np.array([1, 2, 3])
for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']):
print(x)
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for x in np.nditer(arr[:, ::2]):
print(x)
arr = np.array([1, 2, 3])
for idx, x in np.ndenumerate(arr):
print(idx, x)
arr = np.array([[[1, 2, 3, 4], [5, 6, 7, 8]],[[1, 2, 3, 4], [5, 6, 7, 8]]])
for idx, x in np.ndenumerate(arr):
print(idx, x)
arr1 = np.array([[1, 2, 3]])
arr2 = np.array([[4, 5, 6]])
arr_1 = np.concatenate((arr1, arr2),axis=0) # 데이터를 추가할때 사용
arr_2 = np.concatenate((arr1, arr2),axis=1) # 독립변수 혹은 종속변수를 추가할때 사용
print(arr_1)
print(arr_2)
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# arr = np.stack((arr1, arr2), axis=0) # 데이터 추가
arr = np.stack((arr1, arr2), axis=1) # 독립변수 || 종속변수 추가
print(arr)
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.hstack((arr1, arr2)) # 축을 지정하지 않음
print(arr)
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.vstack((arr1, arr2)) # 2차원 쌓기
print(arr)
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.dstack((arr1, arr2)) # 3차원 쌓기
print(arr)
arr = np.array([1, 2, 3, 4, 5])
newarr = np.array_split(arr, 3)
print(newarr)
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
# newarr = np.hsplit(arr, 3)
print(newarr)
arr = np.array([1, 2, 3, 4, 5, 4, 4])
# x = np.where(arr == 4)
x = np.where(arr%2 == 0)
print(x)
arr = np.array([10, 6, 7, 8, 9])
x = np.searchsorted(arr, 10)
print(x)
arr = np.array([6, 7, 7, 9])
x = np.searchsorted(arr, 7, side='left')
print(x)
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)
arr = np.array([3, 2, 0, 1])
print(np.sort(arr))
arr = np.array(['banana', 'cherry', 'apple'])
print(np.sort(arr))
arr = np.array([True, False, True])
print(np.sort(arr))
arr = np.array([[3, 2, 4], [5, 0, 1]])
print(np.sort(arr))
arr = np.array([41, 42, 43, 44])
x = [True, False, True, False]
newarr = arr[x]
print(newarr)
arr = np.array([41, 42, 43, 44])
# Create an empty list
filter_arr = []
# go through each element in arr
for element in arr:
# if the element is higher than 42, set the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
arr = np.array([41, 42, 43, 44])
# filter_arr = arr > 42
# x=np.array([2,-1,0,0]).astype(bool)
x=[1,3,2,0]
# newarr = arr[filter_arr]
newarr=arr[x]
# print(filter_arr)
print(newarr)
from numpy import random
random.random()
random.randint(45)+1
random.randint(45,size=(5))
random.randint(45,size=(3,5))
x=random.rand(3,5)
print(x)
x=random.choice([3,5,7,9])
x=random.choice([3,5,7,9],size=(3,5))
x=random.choice([0,1],size=(3,5))
print(x)
Pandas
엑셀 형태의 데이터 다루기

matplotlib

'100일 챌린지 > 빅데이터기반 인공지능 융합 서비스 개발자' 카테고리의 다른 글
Day 89 - web scraping (2) (0) | 2024.12.04 |
---|---|
Day 88 - web scraping (1) (0) | 2024.12.03 |
Day 88 - Anaconda 설치하기 / Jupyter Notebook 실행하기 (0) | 2024.12.03 |
Day 87 - jwt (0) | 2024.12.02 |
Day 87 - fastapi로 CRUD 프로그램 만들기 (0) | 2024.12.02 |