넘파이
ndim 속성으로 차원 확인
# 차원 확인
print(b1.ndim)
print(b2.ndim)
print(b3.ndim)
reshape 속성으로 형태 변환
reshape은 (m, -1) 또는 (-1, n)처럼 한 쪽 크기만 지정할 수 있다.
# (2, 3) 형태의 2차원 배열 만들기
a = np.array([[1, 2, 3],
[4, 5, 6]])
# (3, 2) 형태의 2차원 배열로 Reshape
b = a.reshape(3, 2)
# 확인
print(b)
# 출력
[[1 2]
[3 4]
[5 6]]
배열에 인덱싱과 슬라이싱을 적용할 수 있다.
# (3, 3) 형태의 2차원 배열 만들기
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 첫 번째 ~ 두 번째 행 조회
# print(a[0:2, :])
print(a[0:2])
# 출력
[[1 2 3]
[4 5 6]]
배열[조건] 형태로 해당 조건에 부합하는 요소만 조회
# 2차원 배열 만들기
score= np.array([[78, 91, 84, 89, 93, 65],
[82, 87, 96, 79, 91, 73]])
# 요소 중에서 90 이상인 것만 조회
print(score[score >= 90])
# 출력
[91 93 96 91]
배열은 연산(+, - ,* ,%)이 가능하다
dot()을 통해 행렬의 곱을 알 수 있다.
데이터프레임 생성, 탐색
데이터프레임에서 인덱스 이름 삭제
# 인덱스 이름 삭제
pop.index.name = None
# 출력
컬럼이 2줄로 보였는데 인덱스가 있던 아래 줄이 사라짐
컬럼이 하나의 행으로 출력
reset_index(drop=Ture)를 설정하여 기존 인덱스 열을 일반 열로가져오지 않고 버릴 수 있다. (기본 값=False)
열 이름 변경
# 열 이름 변경
pop = pop.rename(columns={'index': 'year'}) # index -> year
value_counts에 바로 그래프를 그릴 수 있다.
# 참고
tip['day'].value_counts().plot(kind='bar')
value_counts 비율로 확인 하는 법
# 비율로 확인
tip['smoker'].value_counts(normalize=True)
# 또 다른 방법
tip['smoker'].value_counts() / len(tip)
# 출력
smoker
No 0.618852
Yes 0.381148
Name: proportion, dtype: float64