반응형
반응형
rand 함수
0~1 사이의 랜덤값 반환
np.random.rand() # np.random.seed() 고정값
np.random.rand(2,7,3) # n개 n행 n 열
# 출력
array([[[0.92908681, 0.37724166, 0.08851154],
[0.40941691, 0.46123658, 0.62042291],
[0.78893884, 0.24289605, 0.22583355],
[0.22813315, 0.99178992, 0.44116525],
[0.367626 , 0.45813609, 0.18801338],
[0.71825478, 0.91995478, 0.70026107],
[0.35006165, 0.99012193, 0.16024383]],
[[0.04291615, 0.12856985, 0.30758288],
[0.10310448, 0.39525891, 0.65930864],
[0.51128951, 0.29694251, 0.63119218],
[0.58648806, 0.63222706, 0.72528489],
[0.40521194, 0.78776605, 0.60526099],
[0.67749703, 0.23590815, 0.23482064],
[0.77555876, 0.99608793, 0.99616729]]])
np.random.seed(42)
arr = np.random.rand(100)
arr
# 출력
array([0.37454012, 0.95071431, 0.73199394, 0.59865848, 0.15601864,
0.15599452, 0.05808361, 0.86617615, 0.60111501, 0.70807258,
0.02058449, 0.96990985, 0.83244264, 0.21233911, 0.18182497,
0.18340451, 0.30424224, 0.52475643, 0.43194502, 0.29122914,
0.61185289, 0.13949386, 0.29214465, 0.36636184, 0.45606998,
0.78517596, 0.19967378, 0.51423444, 0.59241457, 0.04645041,
0.60754485, 0.17052412, 0.06505159, 0.94888554, 0.96563203,
0.80839735, 0.30461377, 0.09767211, 0.68423303, 0.44015249,
0.12203823, 0.49517691, 0.03438852, 0.9093204 , 0.25877998,
0.66252228, 0.31171108, 0.52006802, 0.54671028, 0.18485446,
0.96958463, 0.77513282, 0.93949894, 0.89482735, 0.59789998,
0.92187424, 0.0884925 , 0.19598286, 0.04522729, 0.32533033,
0.38867729, 0.27134903, 0.82873751, 0.35675333, 0.28093451,
0.54269608, 0.14092422, 0.80219698, 0.07455064, 0.98688694,
0.77224477, 0.19871568, 0.00552212, 0.81546143, 0.70685734,
0.72900717, 0.77127035, 0.07404465, 0.35846573, 0.11586906,
0.86310343, 0.62329813, 0.33089802, 0.06355835, 0.31098232,
0.32518332, 0.72960618, 0.63755747, 0.88721274, 0.47221493,
0.11959425, 0.71324479, 0.76078505, 0.5612772 , 0.77096718,
0.4937956 , 0.52273283, 0.42754102, 0.02541913, 0.10789143])
arr.var(),arr.mean()
# 출력
(0.08761495016957914, 0.47018074337820936)
from numpy.random.mtrand import shuffle # 섞어준다
np.random.seed(42)
arr = np.arange(50)
np.random.shuffle(arr)
arr
# 출력
array([13, 39, 30, 45, 17, 48, 26, 25, 32, 19, 12, 4, 37, 8, 3, 6, 41,
46, 47, 15, 9, 16, 24, 34, 31, 0, 44, 27, 33, 5, 29, 11, 36, 1,
21, 2, 43, 35, 23, 40, 10, 22, 18, 49, 20, 7, 42, 14, 28, 38])
np.random.choice(4,2) # 0~4 사이의 랜덤하게 추출
# 출력
array([1, 0])
np.random.choice(5,3,replace=False) # 중복값 없애기
# 출력
array([3, 1, 2])
np.random.choice(5,3,p=[1,0,0,0,0]) # 확률값이 1이 넘으면 안됨
# 출력
array([0, 0, 0])
np.random.choice(5,3,p=[0.2,0.2,0.2,0.2,0.2])# 확률값이 1이 넘으면 안됨
# 출력
array([3, 3, 0])
np.random.seed(42)
arr = np.random.randint(50,91,[4,3,2])
arr
# 출력
array([[[88, 78],
[64, 57],
[70, 88]],
[[68, 72],
[60, 60],
[73, 85]],
[[89, 73],
[52, 71],
[51, 73]],
[[79, 87],
[51, 70],
[82, 61]]])
arr.sum(axis=2) # 3차원에선 1이 열 2가 행
# 출력
array([[166, 121, 158],
[140, 120, 158],
[162, 123, 124],
[166, 121, 143]])
arr 에서 차원추가하기
arr[:,np.newaxis] # 열백터 라고부름
# 출력
array([[0],
[1],
[2],
[3],
[4],
[5]])
np.expand_dims(arr,axis=1)
# 출력
array([[0],
[1],
[2],
[3],
[4],
[5]])
전치
- transpose 는 차원을 맞바꿈
- reshape는 순서대로 차원을 변경함
arr2 = np.reshape(arr,[2,3])
arr2
# 출력
array([[0, 1, 2],
[3, 4, 5]])
np.transpose(arr2) # arr2.T 와 같음
# 출력
array([[0, 3],
[1, 4],
[2, 5]])
arr = np.arange(12)
arr.reshape(2,3,2)
# 출력
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]]])
arr.flatten() # 평평하게 만들기
# 출력
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
차원이 1인 차원제거
np.random.seed(42)
arr = np.random.randint(50,91,[4,1,2,1])
arr.shape
# 출력
(4, 1, 2, 1)
arr.squeeze()
# 출력
array([[88, 78],
[64, 57],
[70, 88],
[68, 72]])
arr.squeeze(axis=1).shape
# 출력
(4, 2, 1)
배열 합치기
- concatenate 함수
- axis 방향으로
arr1 = np.array([
[1,2],
[3,4],
[5,6]
])
arr2 = np.array([
[10,20]
])
np.concatenate([arr1,arr2],axis=0)
# 출력
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[10, 20]])
arr2 = np.array([
[10],
[20],
[30]
])
np.concatenate([arr1,arr2],axis=1)
# 출력
array([[10, 20, 10],
[30, 40, 20],
[50, 60, 30]])
stack 함수
- 함치련는 차원의 크기가 모두 동일해야함
- 합치려는 배열이 하나의 행으로 취급됨
arr2 = np.array([
[10,20],
[30,40],
[50,60]
])
np.stack([arr1,arr2])
# 출력
array([[[ 1, 2],
[ 3, 4],
[ 5, 6]],
[[10, 20],
[30, 40],
[50, 60]]])
np.stack([arr1,arr2]).shape
# 출력
(2, 3, 2)
numpy 배열 리스트로 변경하기
arr =np.arange(6).reshape(2,3)
arr
# 출력
array([[0, 1, 2],
[3, 4, 5]])
arr.tolist() # 리스트로 변경
numpy 배열 파일로 저장
np.save("arr",arr) #.npy 확장자로 저장
np.load("arr.npy") # 불러오기
ar2 = arr.copy() # 복사
반응형
'python' 카테고리의 다른 글
ChatGPT 에게 물어보다 - 주니어,취준 개발자의 전망 (0) | 2023.02.20 |
---|---|
[python]파이썬 - numpy (0) | 2023.02.10 |
[pypthon]파이썬 - pandas 를 이용한 eda (0) | 2023.02.02 |
[python]파이썬 - pandas (0) | 2023.01.31 |
[python]파이썬 - open API (2) | 2023.01.30 |
댓글