summ의 블로그

[Python] 왕기초 (2) 본문

파이썬

[Python] 왕기초 (2)

summ._ 2024. 9. 6. 22:00

240906

Python 왕기초 (2)

 

numpy

 

넘파이 설치 및 불러오기

pip install numpy
import numpy as np

 

1차원 리스트

2차원 행렬

3차원 벡터

 

  • 축 

2차원 axis 0 행 axis 1 열 

 

  • np.array

np.array()로 array 만들기

array1 = np.array([1,2,3,4,5])
array2 = np.array([[1,2,3],[4,5,6]])
array3 = np.array([[[1,2,3],[4,5,6]]])

print(array1.shape)
print(array2.shape)
print(array3.shape)

 

3차원 차원 / 행 / 열

 

  • 차원 확인 방법 

이름.ndim

이름.shape

이름.dtype

 

  • 차원 변경 

이름.reshape(n,n) 

n은 여기서 만들고자 하는 차원 숫자 넣으면 됨

 

-1을 이용: 만약 행/열 중 한쪽만 지정하고, 나머지는 바꾸고자 하는 거에 따라 알아서 지정하게 

reshape(3,-1)

reshape(-1,2)

 

  • 인덱싱 사용

인덱싱 사용하여 

이름[행, 열]

이름[[행],:]

이름[[행], [열]]

 

  • 슬라이싱 사용 

슬라이싱 사용 시 무조거 2차원배열로 보여줌 

마지막값 -1까지 보여줌

 

  • 조건 조회

조건에 맞는 요소만 보여주며 1차원 배열로 보여줌

 

  • 사칙연산

+ or np.add(x, y)

- or np.subtract(x, y)

* or np.multiply(x, y)

/ or np.divide(x, y)

** or np.power(x, y)

np.sum(x)

열끼리의 합 집계: 행이 기준 axis = 0

행끼리의 합 집계: 열이 기준 axis =1 

 

  •  최대합 최소합

np.argmax(이름)

np.argmin(이름)

 

  • 조건

np.where(조건문, 조건이 TRUE, 조건이 FALSE)

 

 

pandas

 

판다스 설치 및 불러오기

 

pip install pandas
import pandas as pd

 

 

  • 데이터 가져오기 
df = pd.read_csv('csv')

 

  • 상위 / 하위 5개 데이터 확인 

 

df.head()
df.tail()

 

 

  • 데이터 크기 확인: df.shape
  • 데이터 자료형 확인: df.dtypes
  • 데이터 기본 자료 확인: df.info()
  • 데이터 기초통계량 확인: df.describe()
  • 데이터 정렬 

sort_values() 

ascending=True: 오름차순 정렬(기본값)

ascending=False: 내림차순 정렬

  • 데이터 고윳값 확인: df. unique() 
  • 데이터 고윳값과 개수 확인: df.value_counts()
  • 데이터 집계 합수

df.sum()

df.max()

df.mean()

df.median()

 

  • 데이터 조건 확인 

df.loc[조건]

df.isin([값])

df.between(값1, 값2) 값 1 2 사이의 범위 데이터만 조회

생략 시 inclusive = 'both' (default) 'left' 'right' 'neither'

 

 

 


 

수업 이외의 내용 추가

 

Numpy

  • np.zeros((행, 열)) 값이 모두 0인 배열 생성
  • np.ones((행, 열)) 값이 모두 1인 배열 생성
  • np.full((행, 열), 원하는 값) 원하는 값으로 채워진 배열 생성
  • np.eye((숫자)) 숫자*숫자 단위행렬 
  • np.random.random((행, 열)) 무작위값으로 채워진 배열 생성 
  • np.dot(x, y) 행렬 곱
  • 변수.T 전치행렬 

정수 인덱싱 / 슬라이스 인덱싱 

정수 인덱싱과 슬라이싱 함께 사용하면 차원이 감소됨

 

* 브로드캐스팅 

행렬의 크기가 서로 다르다면, (x = (3,3) y = (1,)) 벡터 y를 반복하여 shape을 맞춰줌

두 행렬이 모든 차원에서 호환가능하면 브로드캐스팅이 됨

 

 

Pandas

 

Series시리즈: 인덱스가 존재하는 1차원의 배열

속성 index / values 존재 

  • 시리즈 행 추가 방법: df.append()
  • iloc loc 

loc 값 하나만 주면 행을 대상으로 작동함. dataframe에 정의된 index에 대해 인덱싱 작동함.

인덱싱하는 값을 포함하여 결과를 반환함.

'라벨' 기준

iloc 열에 대한 인덱싱 가능. '위치' 기준 

 

if df 0~5까지 있으면

df.loc[:3] 0 1 2 3 행까지 보여줌 

df.iloc[:3] 0 1 2 행까지 보여줌 

 

  • idxmax() 최대 값을 가진 인덱스를 반환함
  • iterrows() 행 단위의 데이터 프레임 순환
  • isnull().sum() 열마다 결측값의 수 반환
  • dropna() 결측치 있는 모든 행 삭제 
  • fillna() 결측치 채움
  • get_dummies() 범주형 데이터를 이진형식으로 변환 원핫인코딩 
  • drop_duplicates() 중복행이나 값 제거  

'파이썬' 카테고리의 다른 글

[Python] 왕기초 (4)  (0) 2024.09.10
[Python] 왕기초 (3)  (0) 2024.09.10
[Python] 왕기초 (1)  (0) 2024.09.05
[Python] 헷갈리는 함수 모음  (0) 2024.09.03
넘파이 기초 2  (0) 2024.03.26