** 아래의 내용은 elice 와 NIPA가 함께 제공하는 AI 교육과정에 참여하며 복기하기위해 정리한 내용입니다.
1. 라이브러리 Numpy
Numericla Python
python 에서 대규모 다차원 배열을 다룰 수 있게 도와줌.
숫자의 배열데이터를 반복문 없이 배열처리 가능, 리스트보다 빠른연산 지원/ 메모리 효율적 사용
*특징
- 콤마 구분
- 같은 데이터 타입만 가능(리스트는 다양 데이터 o) - dtype ( int, float, str, bool )
- ndarray : ndim(dimension차원) & shape
#[일반]
list_arr = list(range(5))
>결과 [0,1,2,3,4] - , 콤마 구분
#[numpy 활용]
import numpy as np
np_arr = np.array(range(5))
>결과 [ 0 1 2 3 4] - 공백 구분
#차원
- 1차원 : [0,1,2]
- 2차원 : [[0,1,2],[3,4,5]]
ndim : 2
shape : 2 ,3
matrix = np.arange(1, 13, 1).reshape(3, 4)
print(matrix)
//matrix 결과
//[ 1 2 3 4]
//[ 5 6 7 8]
//[ 9 10 11 12]]
// range(start, stop, step)
- start : list 시작
- stop : list 끝
- step : 증가값
import numpy as np
print("1차원 array")
array = np.array(range(10))
print(array)
# 1. array의 자료형을 출력해보세요.
print(type(array))
# 2. array의 차원을 출력해보세요.
print(array.ndim)
# 3. array의 모양을 출력해보세요.
print(array.shape)
# 4. array의 크기를 출력해보세요.
print(array.size)
# 5. array의 dtype(data type)을 출력해보세요.
print(array.dtype)
# 6. array의 인덱스 5의 요소를 출력해보세요.
print(array[5])
# 7. array의 인덱스 3의 요소부터 인덱스 5 요소까지 출력해보세요.
print(array[3:6])
- ndarray 조절
.format(arr.shape)
.format(arr.size)
.format(len(arr)))
import numpy as np
print("2차원 array")
#1부터 15까지 들어있는 (3,5)짜리 배열을 만듭니다.
matrix = np.array(range(1,16))
matrix.shape = 3,5
print(matrix)
# 1. matrix의 자료형을 출력해보세요.
print(type(matrix))
# 2. matrix의 차원을 출력해보세요.
print(matrix.ndim)
# 3. matrix의 모양을 출력해보세요.
print(matrix.shape)
# 4. matrix의 크기를 출력해보세요.
print(matrix.size)
# 5. matrix의 dtype(data type)을 출력해보세요.
print(matrix.dtype)
# 6. matrix의 dtype을 str로 변경하여 출력해보세요.
print(matrix.astype('str'))
# 7. matrix의 (2,3) 인덱스의 요소를 출력해보세요.
print(matrix[2,3])
# 8. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력해보세요.
print(matrix[0:2,1:4])
- 함수 : astype()
기존의 배열을 복사하여 데이터 자료형을 변환하여 반환
원하는 요소 가져오기
- 1. Indexing & Slicing ( 배열의 일부분만 찾거나 가져오기 )
x = np.arang(7)
print(x[3]) # 3
print(x[1:4] # [1 2 3]
Indexing과 Slicing을 조합해 사용가능
print(x[1:2, 2])
#[7]
print(x[[0,2], 2])
#[3 11]
print(x[[0,2], :2])
#[[ 1 2 ][ 9 10 ]]
- 2. Boolean indexing ( boolean 으로 원하는 값 추출 )
x = np.arange(7)
print(x[x < 3]) # [0 1 2]
print(x[x % 2 == 0]) # [2 4 6]
- 3. Fancy indexin ( 선택해서 전달 )
x = np.arange(7)
print(x[[1, 3, 5]] # [1 3 5]
x = np.arange(1,13,1).reshape(3,4)
print(x)
# [[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
print(x[[0,2]])
# [[ 1 2 3 4]
[ 9 10 11 12]]
2. 라이브러리 Pandas
Numpy 기반으로 설계. pandas는 구조화된 데이터를 효과적으로 처리/저장. 데이터 조작 및 분석에 사용.
Numpy의 array가 보강된 형태. data와 index를 가짐(print(data)).
예) 숫자 테이블과 시계열 조작을 위해 데이터 구조와 연산을 제공.
- 1. 기본 자료 형태 Series
Numpy array가 보강 > Data, index로 구성
data = pd.Series
Values를 ndarray(넘피 배열)의 형태로 가지고 있음.
[ Series 객체생성 ]
- ‘값’과 ‘인덱스’ 매개변수를 각각 넣어주는 방법 (A)
- 딕셔너리를 매개변수로 넣어주는 방법 (B)
* A. 데이터타입 지정 하는 법
data = pd.Series([1,2], dtype = "float")
print(data.dtype)
* B. 딕셔너리로 Series 만들기
dict = {
'korea' : 5180,
'japan' : 12718,
'china' : 141500,
'usa' : 32676
}
country = pd.Series(dict)
print(country)
----result -----
korea 5180
japan 12718
china 141500
usa 32676
dtype: int64
- 2. 기본 자료 형태인 DataFrame
여러개의 시리즈 데이터로 데이터 프레임 생성가능
Series 와 차이 : 시리즈 데이터는 하나의 컬럼 값 / 데이터 프레임은 여러 개의 컬럼 값
country = pd.DataFrame({})
population 과 gdp 를 순서대로 넣어주면
최종 country (데이터 프레임) 의 모습
population gdp
korea 5180 169320000
japan 12718 516700000
china 141500 1409250000
usa 32676 2041280000
과정 >>
실행 결과
---------------------------
Population series data:
korea 5180
japan 12718
china 141500
usa 32676
dtype: int64
GDP series data:
korea 169320000
japan 516700000
china 1409250000
usa 2041280000
dtype: int64
Country DataFrame
Index(['korea', 'japan', 'china', 'usa'], dtype='object')
Index(['population', 'gdp'], dtype='object')
import numpy as np
import pandas as pd
# 두 개의 시리즈 데이터가 있습니다.
print("Population series data:")
population_dict = {
'korea': 5180,
'japan': 12718,
'china': 141500,
'usa': 32676
}
population = pd.Series(population_dict)
print(population, "\n")
print("GDP series data:")
gdp_dict = {
'korea': 169320000,
'japan': 516700000,
'china': 1409250000,
'usa': 2041280000,
}
gdp = pd.Series(gdp_dict)
print(gdp, "\n")
# 이곳에서 2개의 시리즈 값이 들어간 데이터프레임을 생성합니다.
print("Country DataFrame")
country = pd.DataFrame({
'population': population,
'gdp':gdp
})
print(country.index)
print(country.columns)
3. 라이브러리 Metropolip
'ML 인공지능' 카테고리의 다른 글
[Python] 데이터분석을 위한 라이브러리 Numpy, Pandas 전체 요약 (0) | 2021.11.09 |
---|---|
[DL] 자격증 (0) | 2021.08.08 |
[ML] google 제공 ML 용어집 _ 한글버젼 삭제전 (0) | 2021.07.29 |
[Python] 파이썬 모듈과 패키지 (0) | 2021.07.27 |
[Python] 파이썬 기본 문법 (2) | 2021.07.24 |
댓글