Numpy
- 고성능 수치 계산을 위해 제작된 파이썬 라이브러리
- 머신러닝, 딥러닝 알고리즘의 다차원 배열 계산에 효과적
- 대량 데이터 이용시 빠른 계산 가능
- ★중요★ ndarray
In [1]:
import numpy as np
In [2]:
temp = np.array([1,2,3])
print(type(temp))
<class 'numpy.ndarray'>
In [3]:
data1 = [1,2,3]
data1
Out[3]:
[1, 2, 3]
In [4]:
data2 = [1,1,2,2,3,4]
data2
Out[4]:
[1, 1, 2, 2, 3, 4]
In [6]:
#shpae로 배열 크기 확인
my_array1 = np.array(data1)
print(my_array1)
print(my_array1.shape)
[1 2 3]
(3,)
In [7]:
#dtype으로 객체 자료형 확인
my_array3 = np.array([3,6,9,12])
print(my_array3.dtype)
int32
주의
같은 int형이어도 int32,int64처럼 유형이 다를 수 있다.
그러면 오류가 발생할 수 있다.!! 중간중간 확인해야함!
In [11]:
#리스트 여러개 동시에 넣는 것도 가능
my_array4 = np.array([[2,4,6],[8,10,12],[14,16,18]])
my_array4
Out[11]:
array([[ 2, 4, 6],
[ 8, 10, 12],
[14, 16, 18]])
In [13]:
my_array4.shape
Out[13]:
(3, 3)
In [16]:
#arrange함수: 1차원배열
arrange_array = np.arange(5)
arrange_array
Out[16]:
array([0, 1, 2, 3, 4])
In [19]:
#arrange함수: 3단위 배열. 1부터 9 미만까지 3단위로 배열 생성
arrange_array2 = np.arange(1,9,3)
arrange_array2
Out[19]:
array([1, 4, 7])
In [20]:
#zeros, ones : 할당하는 배열에 0이나 1을 쉽게 입력가능하게 함. 기본 데이터 형태는 float64. dtype지정시 변경 가능
zeros_array = np.zeros((3,2))
print(zeros_array)
[[0. 0.]
[0. 0.]
[0. 0.]]
In [22]:
#dtype 강제지정
ones_array = np.ones((3,4), dtype="int32")
print(ones_array)
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
In [24]:
#reshape: 배열의 차원 ,크기 바꾸기. 전체 데이터 크기 다른 경우 error
after_reshape = ones_array.reshape(6,2)
print(after_reshape)
after_reshape = ones_array.reshape(2,3,2)
print(after_reshape)
[[1 1]
[1 1]
[1 1]
[1 1]
[1 1]
[1 1]]
[[[1 1]
[1 1]
[1 1]]
[[1 1]
[1 1]
[1 1]]]
In [27]:
#reshape에서 -1은 다른 차원을 자동으로 계산
#2차원 배열에서 열을 6개로 고정한 뒤 행을 크기에 맞도록 자동정렬
after_reshape2 = ones_array.reshape(-1,6)
print(after_reshape2)
[[1 1 1 1 1 1]
[1 1 1 1 1 1]]
In [28]:
after_reshape3 = ones_array.reshape(3,-1)
print(after_reshape3)
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
In [29]:
#numpy의 indexing과 slicing
my_array = np.arange(start=0, stop=4)
print(my_array)
[0 1 2 3]
In [32]:
#numpy정렬: sort, argsort
##1. sort: 원래 배열은 그대로 두고 오름차순 정렬한 복사본 생성
height_arr = np.array([122,211,31,42])
sorted_height_arr = np.sort(height_arr)
print(sorted_height_arr)
[ 31 42 122 211]
In [34]:
###sort 내림차순 정렬
desc_sorted_height_arr = np.sort(height_arr)[::-1]
print(desc_sorted_height_arr)
[211 122 42 31]
In [35]:
##2. argsort(): 지정된 축을 따라 데이터 인덱스의 배열 반환하도록 지정된 종류의 정렬 이용해 배열 간접 정렬
fives = np.array([10,5,15,20])
fives_order = fives.argsort()
print("the original data:", fives)
print("the argsort():", fives_order)
print("the ascending:", fives[fives_order])
the original data: [10 5 15 20]
the argsort(): [1 0 2 3]
the ascending: [ 5 10 15 20]
In [37]:
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:90% !important; }</style>"))
'AI Theory > key concept of AI' 카테고리의 다른 글
[파이썬으로 캐글뽀개기] 캐글에서 사용되는 머신러닝 알고리즘 (0) | 2022.07.04 |
---|---|
[파이썬으로 캐글뽀개기] pandas와 데이터 전처리 (0) | 2022.06.23 |
[파이썬으로 캐글뽀개기] 튜플과 딕셔너리, 집합(set) (0) | 2022.06.21 |
[파이썬으로 캐글뽀개기] 데이터분석에 유용한 리스트 관련 메소드 (0) | 2022.06.20 |
웹 크롤링이란? (0) | 2022.06.03 |