티스토리 뷰
NumPy (Numerical Python)
: 다양한 자료구조를 다룰 수 있는 클래스들을 포함하고 있는 패키지
NumPy 배열
- NumPy에서 배열 타입을 다루기 위한 클래스는 NumPy.ndarray
- NumPy.ndarray 클래스는 n차원 배열을 쉽고 효율적으로 다루기 위한 목적으로 만듬
import numpy as np
a = np.array([1, 2.5, 4.0, 5.5, 7.0])
print(a[3: ]) #3번째 자리부터 출력(5.5 ~ )
>> [5.5 7. ]
print(a.sum()) #합
>> 20.0
print(a.std()) #표준편차
>> 2.1213203435596424
print(a.cumsum()) #누적 합
>> [ 1. 3.5 7.5 13. 20. ]
print(a * 2) #a 멤버들에 2를 곱한값 출력
>> [ 2. 5. 8. 11. 14.]
print(a ** 2) #a 멤버들에 2를 제곱한 값 출력
>> [ 1. 6.25 16. 30.25 49. ]
print(np.sqrt(a)) #a 멤버들에 루트 적용한 값 출력
>> [1. 1.58113883 2. 2.34520788 2.64575131]
b = np.array([a, a**2])
print(b)
>>
[[ 1. 2.5 4. 5.5 7. ]
[ 1. 6.25 16. 30.25 49. ]]
b.sum(axis = 0) #axis = 0은 세로축의 합 출력
>> [ 2. 8.75 20. 35.75 56. ]
b.sum(axis = 1) #axis = 1은 가로축의 합 출력
>> [ 20. 102.5]
print(np.array([[0,0,0,], [0,0,0]]))
>>
[[0 0 0]
[0 0 0]]
values = np.zeros((2,3), dtype = 'i') #0으로 가득 채운 2x3 행렬생성
#dtype = 'i' : 정수형 / dtype = 'f' : 복소수형
print(values)
>>
[[0 0 0]
[0 0 0]]
Pandas
: CSV 파일 또는 DB로부터 데이터를 쉽게 읽고 쓸 수 있어 데이터를 다룰 때 많이 사용 되는 패키지
빠를 속도로 데이터 분석 가능.
Pandas의 자료 구조 : Series, DataFrame
Series 예제
import pandas as pd
pandas_series = pd.Series([3000, 3200, 2700], index = ['2016-11-10', '2016-11-11', '2016-11-12'])
print(pandas_series)
>>
2016-11-10 3000
2016-11-11 3200
2016-11-12 2700
dtype: int64
print(pandas_series[1:])
>>
2016-11-11 3200
2016-11-12 2700
dtype: int64
DataFrame 예제
import pandas as pd
import numpy as np
#데이터 100,150,200,250,300 를 가지는 DataFrame 생성
#열 이름 : numbers
#행 이름 : a, b, c, d, e
df = pd.DataFrame([100, 150, 200, 250, 300], columns = ['numbers'], index = ['a','b','c','d','e'])
print(df)
>>
numbers
a 100
b 150
c 200
d 250
e 300
print(df.index) #index만 출력
>> Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
print(df.sum())
>> numbers 1000
dtype: int64
print(df.numbers**2) #DataFrame 값을 제곱
>>
a 10000
b 22500
c 40000
d 62500
e 90000
Name: numbers, dtype: int64
#DataFrame에 'values'라는 columns 추가.
df['values'] = (10,50,40,30,60)
print(df)
>>
numbers values
a 100 10
b 150 50
c 200 40
d 250 30
e 300 60
#DataFrame의 columns 'values' 수정.
df['values'] = pd.DataFrame(['Fourth', 'Second', 'First', 'Fifth', 'Third'], index = ['d','b','a','e','c'])
print(df)
#index에 맞는 각각의 값을 DataFrame에 추가.
#index 수를 맞추지 않으면 에러 발생
>>
numbers values
a 100 First
b 150 Second
c 200 Third
d 250 Fourth
e 300 Fifth
del df['values']
print(df)
>>
numbers
a 100
b 150
c 200
d 250
e 300
df_1 = pd.DataFrame(['1','2','3'], columns = ['A'])
df_2 = pd.DataFrame(['4','5','6','7'], columns = ['B'])
df = df_1.join(df_2, how = 'outer') #두개의 DataFrame을 Outer join으로 합침
print(df)
>>
A B
0 1 4
1 2 5
2 3 6
3 NaN 7
#5x5행렬 생성
df = pd.DataFrame(np.random.randn(5,5))
df.columns = ['A','B','C','D','E']
print(df)
>>
A B C D E
0 -1.007019 0.764202 0.487860 -0.573025 2.024442
1 -1.154769 1.752510 -0.845164 -0.802163 1.107832
2 0.947698 -0.010856 -0.111301 -0.670684 0.014977
3 -0.020861 -0.691743 -1.224263 -0.407138 1.756498
4 0.139213 -1.030757 1.297523 0.354125 0.086188
print(df.max()) #최대값 출력
>>
A 0.947698
B 1.752510
C 1.297523
D 0.354125
E 2.024442
dtype: float64
print(df.min()) #최소값 출력
>>
A -1.154769
B -1.030757
C -1.224263
D -0.802163
E 0.014977
dtype: float64
print(df.mean()) #평균값 출력
>>
A -0.219147
B 0.156671
C -0.079069
D -0.419777
E 0.997987
dtype: float64
print(df.std()) #표준편차 출력
>>
A 0.869684
B 1.126239
C 1.014374
D 0.456000
E 0.927187
dtype: float64
print(df.describe()) #통계적 분포 확인
>>
A B C D E
count 5.000000 5.000000 5.000000 5.000000 5.000000
mean -0.219147 0.156671 -0.079069 -0.419777 0.997987
std 0.869684 1.126239 1.014374 0.456000 0.927187
min -1.154769 -1.030757 -1.224263 -0.802163 0.014977
25% -1.007019 -0.691743 -0.845164 -0.670684 0.086188
50% -0.020861 -0.010856 -0.111301 -0.573025 1.107832
75% 0.139213 0.764202 0.487860 -0.407138 1.756498
max 0.947698 1.752510 1.297523 0.354125 2.024442
df['division'] = ['X','Y','X','Y','Z']
print(df)
>> A B C D E division
0 -1.007019 0.764202 0.487860 -0.573025 2.024442 X
1 -1.154769 1.752510 -0.845164 -0.802163 1.107832 Y
2 0.947698 -0.010856 -0.111301 -0.670684 0.014977 X
3 -0.020861 -0.691743 -1.224263 -0.407138 1.756498 Y
4 0.139213 -1.030757 1.297523 0.354125 0.086188 Z
print(df.groupby(['division']).mean())
#Group by를 이용하여 Colum 'division' 값에 따라 평균값 출력
>> A B C D E
division
X -0.029660 0.376673 0.188279 -0.621855 1.019710
Y -0.587815 0.530384 -1.034713 -0.604650 1.432165
Z 0.139213 -1.030757 1.297523 0.354125 0.086188
'PYTHON' 카테고리의 다른 글
PYTHON 자료구조 (0) | 2019.10.24 |
---|