파이썬에서 Numpy, pandas는 정말 중요하다고 많이 들어서 이번 기회에 이렇게 정리를 해봤다
한번 봤던 내용이지만 사용을 안 하다 보면 기억이.. 다시 한번 기록을 해본다.
import numpy as np #패키지를 불러올때 먼저
1. 리스트로 부터 Numpy의 1차원 배열을 생성하는 예
data1 = [0, 1, 2, 3, 4, 5]
a1 = np.array(data1)
a1
array([0, 1, 2, 3, 4, 5])
data2 = [0.1, 5, 4, 12, 0.5]
a2 = np.array(data2)
a2
array([ 0.1, 5. , 4. , 12. , 0.5])
#리스트 안에 실수가 포함돼 있으면 실수로 변환됨.
a2.dtype
dtype('float64')
2. 리스트 데이터를 직접 넣어서 배열 객체를 생성
np.array([1,2,3,4,5])
out: array([1, 2, 3, 4, 5])
3. 다차원 배열의 형성
np.array([[1,2,3],[4,5,6],[7,8,9]]) #리스트를 밖에서 한번 더 감싸준다.
out: array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
4. 범위를 지정해 배열 생성
np.arange(0, 10, 2) #np.arange(시작범위,끝범위,step)
# array([0, 2, 4, 6, 8])
np.arange(1,10)
# array([1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(12).reshape(4,3) #4*3배열 생성
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
np.linspace(0, np.pi,20) #(start, stop[,num])
array([0. , 0.16534698, 0.33069396, 0.49604095, 0.66138793,
0.82673491, 0.99208189, 1.15742887, 1.32277585, 1.48812284,
1.65346982, 1.8188168 , 1.98416378, 2.14951076, 2.31485774,
2.48020473, 2.64555171, 2.81089869, 2.97624567, 3.14159265])
5.단위 행렬을 생성하는 방법. 단위 행력은 n x n인 정사각형 행렬에서 주 대가선이 모두 1이고 나머지는 0인 행렬을 의미합니다.
np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
6. 배열의 데이터 타입 변환
st1_a1 = np.array(['1.232','0.232','5.2132','8','9'])
num_a1 = st1_a1.astype(float)
num_a1
array([1.232 , 0.232 , 5.2132, 8. , 9. ])
7. 난수 배열의 생성
np.random.rand(2,3) # 2 x 3 2차원 배열의 실수 난수 생성
array([[0.79928795, 0.987102 , 0.6109984 ],
[0.32604373, 0.6182609 , 0.70267377]])
np.random.rand(2,3,4)
array([[[0.05770752, 0.26472669, 0.90182377, 0.43347328],
[0.45685163, 0.83181569, 0.61535999, 0.11876695],
[0.18300043, 0.74174714, 0.73860714, 0.07551203]],
[[0.42019787, 0.79028413, 0.87131113, 0.72630516],
[0.14347198, 0.95733301, 0.33905009, 0.66063864],
[0.18447118, 0.41845772, 0.2337903 , 0.73243338]]])
8.지정한 범위에 해당하는 정수로 난수 배열을 생성
np.random.randint(10,size=(3,4))
array([[0, 0, 5, 5],
[6, 2, 5, 8],
[1, 9, 4, 9]])
np.random.randint(1,30 ,size=(3,4))
array([[20, 28, 5, 1],
[14, 13, 21, 8],
[28, 14, 13, 17]])
9.배열의 인덱싱과 슬라이싱
a1 = np.array([0, 10, 20, 30,40,50]
array([ 0, 10, 20, 30, 40, 50])
a1[3]
30
9#1. 1차원 배열에서 여려개의 원소 선택
a1[[1,2,3]]
array([10, 20, 30])
10. 배열에 조건을 지정해 조건을 만족하는 배열 선택
a = np.array([1,2,3,4,5,6])
a[a>3]
array([4, 5, 6])
a[(a % 2) == 0]
array([2, 4, 6])
a[:4] # [시작:끝]
array([1, 2, 3, 4])
11. 2차원 배열의 슬라이싱.
b2 = np.arange(10, 100, 10).reshape(3,3)
[[10 20 30]
[40 50 60]
[70 80 90]]
b2[1:3, 1:3] #[행의시작과끝(1:3) , 열의 시작과 끝(1:3)]
array([[50, 60],
[80, 90]])
b2[1][0:2] # 2차원 배열에서 행을 지정하고 열을 슬라이싱하는 예[행지정][열슬라이싱]
array([40, 50])
12.열고정 행은 알아서
reshape(-1,1) #열고정 행은 알아서
14.넘파이 sort() 유형
# 내림차순
np.sort()[::-1]
argsort()
np.argsort(A)
# 정렬된 행렬의 원본 행렬 인덱스를 반환.
'나만의 파이썬' 카테고리의 다른 글
[파이썬] 유용하게 쓰이는 정규식 표현 (0) | 2021.08.02 |
---|---|
python 머신러닝 이론 정리. (1) | 2021.06.11 |
[네이버] 금융 코스닥 파이썬 크롤링 연습. (1) | 2021.06.04 |
댓글