100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자

Day 88 - Numpy, pandas, matplotlib

ksyke 2024. 12. 3. 17:06

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