Python +머신러닝

[Python] - Numpy 기초 정리 1

dev_SiWoo 2020. 8. 27. 00:10

 

 

 

 

Numpy Basic

Numerical Python의 줄임말인데 이는 C언어로 구현된 파이썬 라이브러리로써 고성능의 수치계산을 위해 제작되었다. Numpy는 벡터 및 행렬 연산에 있어서 매우 편리한 기능을 제공한다.

또한 이는 데이터분석을 할 때 사용되는 라이브러리인 pandas와 matplotlib의 기반으로 사용된다.

In [65]:
import numpy as np
In [66]:
arr = np.array([[1,2,3], [1,2,3]])
 

numpy에서는 기본적으로 array라는 단위로 데이터를 관리한다. array는 말 그대로 행렬 개념이며 위와 같이 Array를 선언 할 수 있다. 또한 아래 처럼 array을 선언할 때 데이터 타입을 설정해 줄 수 있다.

In [67]:
arr2 = np.array([[1,2,3],[1,2,3]], dtype = 'uint8')
arr2.dtype
Out[67]:
dtype('uint8')
 

Numpy method

numpy를 통해서 객체를 생성하면 다양한 메소드를 이용할 수 있다.

  • dtype : array의 데이터 타입을 확인
In [68]:
arr.dtype
Out[68]:
dtype('int32')
 
  • astyp : data type을 변환 해줌
In [69]:
arr.astype('float32')
Out[69]:
array([[1., 2., 3.],
       [1., 2., 3.]], dtype=float32)
 
  • shape : array의 모양을 확인
In [70]:
arr.shape
Out[70]:
(2, 3)
 
  • ndim : 차원의 개수를 리턴
    len(arr.shape) 으로 대체가능
In [71]:
print(arr.ndim)
print(len(arr.shape))
 
2
2
 
  • Reshape : 기존 데이터는 유지하고 차원과 형상을 바꾸는데 사용하는 메소드
In [72]:
print(arr)
print(arr.shape)
arr3 = arr.reshape([6])
print(arr3)
print(arr3.shape)
 
[[1 2 3]
 [1 2 3]]
(2, 3)
[1 2 3 1 2 3]
(6,)
In [73]:
arr4 = arr.reshape([3,2])
print(arr4)
print(arr4.shape)
 
[[1 2]
 [3 1]
 [2 3]]
(3, 2)
 
  • Reshape -1
  • reshape(-1,n) : n개의 열로 reshape
  • reshape(n,-1) : n개의 행으로 reshape
In [74]:
print('arr 원본 :\n',arr,'\n shape:',arr.shape,'\n\n')
arr5 = arr.reshape(-1)
print(arr5, arr5.shape)

print('\n\n****reshape(-1,n)****\n')

arr6 = arr.reshape(-1,1)
print(arr6, arr6.shape)
print('--------------------')
arr7 = arr.reshape(-1,2)
print(arr7, arr7.shape)
print('--------------------')
arr8 = arr.reshape(-1,3)
print(arr8, arr8.shape)


print('\n\n****reshape(n,-1)****\n')
arr9 = arr.reshape(1,-1)
print(arr9, arr9.shape)
print('--------------------')
arr10= arr.reshape(2,-1)
print(arr10, arr10.shape)
print('--------------------')
arr11= arr.reshape(3,-1)
print(arr11, arr11.shape)
 
arr 원본 :
 [[1 2 3]
 [1 2 3]] 
 shape: (2, 3) 


[1 2 3 1 2 3] (6,)


****reshape(-1,n)****

[[1]
 [2]
 [3]
 [1]
 [2]
 [3]] (6, 1)
--------------------
[[1 2]
 [3 1]
 [2 3]] (3, 2)
--------------------
[[1 2 3]
 [1 2 3]] (2, 3)


****reshape(n,-1)****

[[1 2 3 1 2 3]] (1, 6)
--------------------
[[1 2 3]
 [1 2 3]] (2, 3)
--------------------
[[1 2]
 [3 1]
 [2 3]] (3, 2)
In [ ]: