728x90
▶ 넘파이
▶ 행렬 슬라이싱 하기
a = np.array([[0,1,2,3,4],
[5,6,7,8,9],
[10,11,12,13,14]])
print(a[1,2]) #7
print(a[-1,-1]) #14
print(a[1,:2]) #5 6
print(a[1:3,2]) #7 12
print(a[0:2,3:5]) #[3 4] [8 9]
#조건문 연산을 사용해 간단히 쓰기 가능
print(a %2)
print(a %2==0)
print(a[a%2==0])
▶ 정수배열 인덱싱
#정수배열 인덱싱
a= np.array([11,22,33,44,55,66,77,88,99])
idx = np.array([0,2,4,6,8])
a[idx]
a = np.array([11,22,33,44,55,66,77,88,99])
idx = np.array([0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2])
a[idx]
#정수형 배열에서 배열인덱싱
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(a[:,[True,False,False,True]])
print(a[[2,0,1],:])
▶ 배열 인덱싱, & and 차이
x = np.array([1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20])
#3의 배수
print(x[x%3==0])
#4로 나누면 1이 남는수
print(x[x%4==1])
#3으로 나누어지고 4로나누면 1이 남는수
print(x[(x%3==0) & (x%4==1)]) #and:두개의 논리식에 사용 &:비트연산(위치(인덱스)의 개념)
▶ 넘파이 배열은 원소가 모두 같은 자료형이어야 함
np.array를 사용하여 자료형을 명시적으로 적용하러면 dtype인수를 사용한다.
x = np.array([1,2,3])
print(x.dtype) #int32
xx = np.array([1.0,2.0,3.0])
print(xx.dtype) #float64
정수와 실수가 섞여 있으면, 실수가 하나라도 있기 때문에 정소의 손실을 최소화 하는 방향인, 정수->실수로 바꾸어 저장됨
x = np.array([1,2,3.0])
print(x.dtype) #float64
▶ 무한대 inf
a = np.array([1.0,2.0,-3.0,0.0])
b = np.array([0.0,1.0,0.0,0.0])
c = a/b
print(c) #nan: 허용되지 않는다
▶ 다양한 배열 생성
a = np.zeros(5);print(a)
b = np.zeros((2,3));print(b)
c = np.zeros((5,2), dtype="i"); c
실행결과 ↓
[0. 0. 0. 0. 0.]
[[0. 0. 0.]
[0. 0. 0.]]
array([[0, 0],
[0, 0],
[0, 0],
[0, 0],
[0, 0]], dtype=int32)
▶ 문자열 배열은 모든 원소의 크기가 같아야 한다.
d = np.zeros(5,dtype="U4")
d[0] = 'abc'
d[1] = 'abcd'
d[2] = "ABCDE"
d[3] = "가나다라마"
d
▶ 다양한 배열1
# 배열의 모양 정해주기
e = np.ones((2,3,4),dtype='i8')
실행결과 ↓
array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],
[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int64)
▶ 다양한 배열2
f = np.zeros_like(b,dtype='f')
f
ff = np.ones_like(b,dtype='f')
ff
▶ 다양한 배열3
# 쓰레기값 들어감
g = np.empty((4,3))
g
▶ 배열 모양 바꾸기 1
#np.arange(3,21,2) #시작, 끝(포함안함),단계
a = np.arange(12)
b = a.reshape(3,4)
#여기까지는 a값 바뀌지 않음
print(a)
print(b)
실행결과 ↓
[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
▶ 배열 모양 바꾸기 2
#-1 넣으면 알아서 배열 만들어줌
#a 값 바뀜
a.reshape(3,-1)
실행결과 ↓
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
728x90
'• 패스트캠퍼스 데이터분석 부트캠프 12기' 카테고리의 다른 글
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_15 (0) | 2024.01.15 |
---|---|
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_14 (1) | 2024.01.15 |
[패스트캠퍼스] 데이터분석 부트캠프12기 학습일지_04 (1) | 2024.01.14 |
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_12 (0) | 2024.01.14 |
3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_11 (0) | 2024.01.14 |