1. format ํจ์
weather = "rain"
temp = 30
a = "Weather tomorrow : {}, temp : {}".format(weather,temp)
print(a)
>>> Weather tomorrow : ra, temp : 30
2. lambda ํจ์
add = lambda x,y : x+y
add(3,5)
>>> 8
3.๋ชจ๋ dir ํจ์
import math
dir(math)
>>> ['__doc__',
'__file__',
'__loader__',
'__name__',,,,,,,,
4. ๊ธฐ๋ณธ ๋ชจ๋
import sys
import calendar
import request # ํฌ๋กค๋งํ ๋ ํ์ํ ๋ชจ๋
import random
5. Numpy
Numpy ๋ชจ๋์ ๋ค์ฐจ์ ๋ฐฐ์ด(ndarray)์ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ชจ๋์ด๋ค.
- ๋ชจ๋ ๊ฐ์ ์๋ฃํ์ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋ฐฐ์ด์ ์ฐจ์์ rank๋ผ๊ณ ๋ถ๋ฅด๊ณ , ์ ์ฒด ํฌ๊ธฐ๋ฅผ shape๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์์) ํ์ด 2์ด๊ณ ์ด์ด 3์ธ ๋ฐฐ์ด์ด๋ฉด rank =2, shape = (2,3)์ด๋ค.
1. ndarray ์์ฑํ๊ธฐ
1. np.array() ํจ์
np.array(๋ฐฐ์ด) ํจ์๋ ์ฃผ์ด์ง ๋ฐฐ์ด์ ndarray๋ก ๋ณํํ์ฌ returnํด์ค๋ค.
import numpy as np
x= np.array([[1,2,3,4],[5,6,7,8]])
print(x)
print(type(x),x.shape,x.dtype)
>>> [[1 2 3 4]
[5 6 7 8]]
>>> <class 'numpy.ndarray'> (2, 4) int64
2. np.arange() ํจ์
np.arange(range์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ) ํจ์๋ rangeํจ์๋ฅผ ์ด์ฉํ์ฌ list๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋๋ก ํด์ค๋ค.
y=np.arange(10)
print(y)
z=np.arange(1,10,2)
print(z)
>>> [0 1 2 3 4 5 6 7 8 9]
>>> [1 3 5 7 9]
3. np.ones() ํจ์์ np.zeros() ํจ์
np.ones((size)) ํจ์์ np.zeros() ํจ์๋ ์ฃผ์ด์ง size๋งํผ 1(๋๋ 0)๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ ์์ฑํ๋ค.
a=np.ones((4,5)) # ์์๊ฐ ๋ชจ๋ 1์ธ ndarray ์์ฑ
print(a)
>>> [[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
b = np.zeros((3,4,5))
print(b)
>>> [[[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.]
[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.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]]
4. np.empty() ํจ์
np.empty((size)) ํจ์๋ ์ฃผ์ด์ง size๋งํผ ๋น ๋ฐฐ์ด์ ์์ฑํ๋ค.
c = np.empty((3,4)) # ๋น ๋ฐฐ์ด ์์ฑ
print(c)
>>> [[0.00000000e+000 7.41098469e-323 0.00000000e+000 0.00000000e+000]
[0.00000000e+000 5.64233733e-067 5.20094690e-090 2.78857459e+179]
[6.54513198e-043 2.63311837e-052 3.99910963e+252 1.46030983e-319]]
5. np.full() ํจ์
np.full((size),๊ฐ) ํจ์๋ ์ฃผ์ด์ง size๋งํผ ํน์ ๊ฐ์ผ๋ก ์ฑ์์ง ๋ฐฐ์ด์ ์์ฑํ๋ค.
d = np.full((2,3),5) # ์ง์ ๋ ๊ฐ์ผ๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑ
print(d)
>>> [[5 5 5]
[5 5 5]]
6. np.eyes() ํจ์์ np.identity() ํจ์
np.eyes(size) ํจ์์ np.identity(size) ํจ์๋ ์ฃผ์ด์ง size์ ๋จ์ํ๋ ฌ์ ์์ฑํ๋ค.
np.eye(3) # ๋จ์ํ๋ ฌ ์์ฑ
>>> array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
7. np.linspace() ํจ์
np.linespace(์์๊ฐ,๋๊ฐ,์์ ๊ฐ์ ํจ์)๋ ์ฒ์๊ณผ ๋๊น์ง ์ ํด์ง ์๋งํผ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋์ด๊ฐ๋ฉฐ ๋ฐฐ์ด ์์ฑํ๋ค.
np.linspace(1,10,4) # ์ฒ์๊ณผ ๋๊น์ง ์ ํด์ง ์๋งํผ ๊ฐ์ ๊ฐ๊ฒฉ์ผ๋ก ๋์ด๊ฐ๋ฉฐ ๋ฐฐ์ด ์์ฑ
>>> array([ 1., 4., 7., 10.])
2. Numpy์ Randomํจ์๋ฅผ ํ์ฉํ์ฌ ndarray ์์ฑํ๊ธฐ
1. rand() ํจ์
rand(size) ํจ์๋ 0~1์ฌ์ด์ ์๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑํ๋ค.
np.random.rand(3,4)
>>> array([[0.86276167, 0.60177871, 0.6472568 , 0.64470337],
[0.40840884, 0.73204089, 0.3245383 , 0.19081743],
[0.30652447, 0.39284716, 0.3673263 , 0.40596438]])
2. randint() ํจ์
randint(์์๊ฐ,๋๊ฐ,(size)) ํจ์๋ ํน์ ์ ์ ์ฌ์ด์ ์๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑํ๋ค.
np.random.randint(1,100,(3,4,5)) # ํน์ ์ ์ ์ฌ์ด์ ์๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑ
>>> array([[[ 3, 61, 2, 43, 82],
[ 1, 5, 71, 74, 44],
[25, 1, 22, 16, 33],
[62, 77, 6, 76, 66]],
[[21, 95, 92, 77, 70],
[22, 17, 25, 34, 76],
[51, 72, 62, 22, 6],
[75, 81, 10, 57, 8]],
[[11, 92, 55, 68, 58],
[ 2, 47, 6, 21, 26],
[87, 27, 15, 99, 58],
[62, 11, 52, 7, 47]]])
2. seed() ํจ์
seed(์์๊ฐ) ํจ์๋ ์๋๋ฅผ ์ ํด์ฃผ์ด ๊ฐ์ ์๋๋ก ์์ํ ๋๋คํจ์์์๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋๋ก ํ๋ค.
np.random.seed(23)
print(np.random.randn(3,4))
np.random.seed(23) # seed๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
print(np.random.randn(3,4))
print(np.random.randn(3,4)) #seed๊ฐ ์๋๊ฒฝ์ฐ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋จ
>>> [[ 0.66698806 0.02581308 -0.77761941 0.94863382]
[ 0.70167179 -1.05108156 -0.36754812 -1.13745969]
[-1.32214752 1.77225828 -0.34745899 0.67014016]]
>>> [[ 0.66698806 0.02581308 -0.77761941 0.94863382]
[ 0.70167179 -1.05108156 -0.36754812 -1.13745969]
[-1.32214752 1.77225828 -0.34745899 0.67014016]]
>>> [[ 0.32227152 0.06034293 -1.04345 -1.00994188]
[ 0.44173637 1.12887685 -1.83806777 -0.93876863]
[-0.20184052 1.04537128 0.53816197 0.81211867]]
3. choice() ํจ์
choice(๋ฐฐ์ด,(size)) ํจ์๋ ์ฃผ์ด์ง ๋ฐฐ์ด์์ ๋ฌด์์๋ก ๊ณ ๋ฅธ ๊ฐ๋ค๋ก size๋งํผ ์ฑ์์ง ๋ฐฐ์ด์ ์์ฑํ๋ค.
print(np.random.choice(100,(2,3))) # 1~100๊น์ง์ ์ ์๋ก ์ฑ์์ง ๋ฐฐ์ด์์ ๋ฌด์์๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑ
x=[1,2,3,4,5,6]
np.random.choice(x,(2,3),replace = False) # ์ฃผ์ด์ง 1์ฐจ์ ๋ฐฐ์ด์์ ๋ฌด์์๋ก ์ฑ์์ง ๋ฐฐ์ด ์์ฑ(์ค๋ณตํ์ฉ X )
>>> [[66 74 35]
[96 56 13]]
>>> array([[5, 1, 6],
[1, 3, 5]])
3. ndarray indexing
1. 2์ฐจ์ ๋ฐฐ์ด
x= np.arange(6).reshape(2,3)
print(x)
print(x[0])
print(x[1,:2])
>>> [[0 1 2]
[3 4 5]]
>>> [0 1 2]
>>> [3 4]
2. 3์ฐจ์ ๋ฐฐ์ด
x= np.arange(24).reshape(2,3,4)
print(x)
print(x[0])
print(x[1,:2])
print(x[:1,:2,:3])
>>> [[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
>>> [[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
>>> [[12 13 14 15]
[16 17 18 19]]
>>> [[[0 1 2]
[4 5 6]]]
3. ๋ ผ๋ฆฌ๊ฐ์ ์ด์ฉํ indexing
np.random.seed(103)
x=np.random.randint(1,100,size=10)
print(x)
even_num = x%2==0
print(even_num)
print(x[even_num])
print(x[x%2==0])
>>> [ 8 74 20 92 58 71 29 22 24 56]
>>> [ True True True True True False False True True True]
>>> [ 8 74 20 92 58 22 24 56]
>>> [ 8 74 20 92 58 22 24 56]
4. ndarray ํํ ๋ณํ
1. reshape() ํจ์
reshape(size)ํจ์๋ ํจ์์ ํํ๋ฅผ ๋ณํํ๋ ํจ์๋ก, ๋ณ๊ฒฝ ์ ,ํ์ ์์์ ๊ฐ์๊ฐ ๊ฐ์์ผ ํ๋ค.
x=np.arange(10)
print(x)
print(x.ndim)
y=x.reshape(2,5)
print(x)
print(y,y.ndim)
>>> [0 1 2 3 4 5 6 7 8 9]
>>> 1
>>> [0 1 2 3 4 5 6 7 8 9]
>>> [[0 1 2 3 4]
[5 6 7 8 9]] 2
2. ๋ค์ฐจ์ ๋ฐฐ์ด์ 1์ฐจ์ ๋ฐฐ์ด๋ก ๋ณํํด์ฃผ๋ ํจ์
ravelํจ์์ flattenํจ์๋ ๋ค์ฐจ์ ๋ฐฐ์ด์ 1์ฐจ์ ๋ฐฐ์ด๋ก ๋ณํํด์ฃผ๋ ํจ์๋ค. ์ฐจ์ด์ ์ flattenํจ์๋ ๋ณต์ฌ๋ณธ์ ๋ฐํํด์ค๋ค๋ ์ ์ด๋ค.
print(np.ravel(y,order='c')) #๊ฐ์ ํ์ ์๋ ์์๋ฅผ ์ฐ์
print(np.ravel(y,order='f')) #๊ฐ์ ์ด์ ์๋ ์์๋ฅผ ์ฐ์
y.ravel() # ์ด๋ฐ์์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
>>> [0 1 2 3 4 5 6 7 8 9]
>>> [0 5 1 6 2 7 3 8 4 9]
>>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
5. ndarray ์ฐ์ฐ
1. ๋ฒ์ฉํจ์(universial function)
*๋ฒ์ฉํจ์๋? *
ufunc๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ndarray์ ๋ฐ์ดํฐ ์์๋ณ๋ก ์ฐ์ฐ์ ์ํํ๋ ํจ์๋ฅผ ๋งํ๋ค.
https://codetorial.net/numpy/functions/index.html
6. ndarray axis
1. axis(์ถ)
*axis๋? *
์ถ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ndarray์ ๋ฐ์ดํฐ ์์๋ค ์ค ์ํ๋ ์ถ์ ์ง์ ํ์ฌ ์ฐ์ฐ์ ์ํํ ์ ์๋ค.
2. 1์ฐจ์ ๋ฐฐ์ด์ ๋
x=np.arange(10)
print(x)
print(np.sum(x,axis=0))
>>> [0 1 2 3 4 5 6 7 8 9]
>>> 45
3. 2์ฐจ์ ๋ฐฐ์ด์ ๋
y=x.reshape(2,5)
print(y)
print(np.sum(y,axis=0)) #์ด๋ณ๋ก ์ฐ์ฐ์ด ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ค.
print(np.sum(y,axis=1)) #ํ๋ณ๋ก ์ฐ์ฐ์ด ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ค.
>>> [[0 1 2 3 4]
[5 6 7 8 9]]
>>> [ 5 7 9 11 13]
>>> [10 35]
4. 3์ฐจ์ ๋ฐฐ์ด์ ๋
z= np.arange(24).reshape(2,3,4)
print(z)
print(np.sum(z,axis=0))
print(np.sum(z,axis=1))
print(np.sum(z,axis=2))
print(np.sum(z,axis=(0,2)))
>>> [[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
>>> [12 14 16 18]
[20 22 24 26]
[28 30 32 34]]
>>> [[12 15 18 21]
[48 51 54 57]]
>>> [[ 6 22 38]
[54 70 86]]
>>> [ 60 92 124] #axis๊ฐ 0์ผ ๋๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ axis๊ฐ 2์ธ ๊ฒฝ์ฐ์ ์ฐ์ฐ์ ํ๋ฒ ๋ ์คํ์ํจ ๊ฒฐ๊ณผ
'๐ฅ๏ธSW Engineer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Python ๊ธฐ์ด ๋ฐ ์๋ฃํ (0) | 2022.11.12 |
---|---|
Smart Sensor & Actuator (0) | 2022.11.11 |
Git ๊ณต๋ถ - Branch & Conflict (0) | 2022.11.11 |
Git ๊ณต๋ถ - Backup (0) | 2022.11.11 |
Git ๊ณต๋ถ - ๋ฒ์ ๊ด๋ฆฌํธ (0) | 2022.11.11 |