numpy.org/devdocs/user/quickstart.html
Quickstart tutorial — NumPy v1.20.dev0 Manual
NumPy provides familiar mathematical functions such as sin, cos, and exp. In NumPy, these are called “universal functions”(ufunc). Within NumPy, these functions operate elementwise on an array, producing an array as output. See also all, any, apply_alo
numpy.org
글을 쓰면서 numpy 홈페이지를 참고했다.
Numpy는 파이썬에서 선형대수 계산기능을 제공한다. 자료형이 고정된 다차원 배열 클래스와 벡터화 연산을 지원하며 수학 연산에 있어 가장 중요한 패키지다.
선형대수 계산뿐 아니라 무작위 난수 생성에도 빈번하게 활용된다.
선형대수 기능을 사용하기 위해서 선형대수학에 대한 이해가 선행되면 더욱 좋다.
먼저, Numpy로 할 수 있는 array 클래스에 대해 배워보자.
1. array(배열) 생성
#array 생성
a = np.array([2,3,4]) #array를 만들기 위해서는 리스트나 튜플 형식으로 입력해주어야 한다.
a
a.dtype
######################################
b = np.array([1.1, 2.3, 3.5])
b.dtype
array를 생성할 때, 옵션으로 dtype을 지정해줄 수 있다.
b = np.array([1.1, 2.3, 3.5], dtype = 'i')
b
2. 배열 확인 (.shape)
a = np.arange(15).reshape(3,5)
a
a.shape
.shape 함수로 배열확인이 가능
3. 차원보기 (.ndim)
a.ndim
.ndim함수로 2차원임을 확인
4. 자료형 확인(.dtype)
type(a)
array클래스의 type을 확인해보면 numpy의 ndarray라는 클래스임을 확인할 수 있다.
ndarray클래스는 내부 데이터의 자료형이 전부 같아야 한다.
이 자료형을 확인하려면 .dtype 함수를 사용하면 된다.
a.dtype
a라는 array의 내부는 int형 데이터가 들어있음을 확인
5. np.zeros((행,열))
.zeros() 함수로 원하는 영행렬을 만들 수 있다.
#영행렬 만들기
np.zeros((3,4))
5-1. np.ones((행,열))
.ones()로 원하는 1로만 구성된 행렬을 만들 수도 있다. (1로만 이루어진 행렬을 뭐라하더라..)
#1로만 구성된 행렬 만들기
np.ones((3,4))
5-2. np.empty((행,열))
배열을 생성만하고 특정한 값으로 초기화하지 않는 함수라고 한다.
무슨 말인지 이해가 안 가서 실험해보니까 이전에 만들었던 배열을 불러오는 것 같다.
#.empty()
np.empty((1,3))
np.empty((3,4))
np.empty((6,5))
정확히 어떤 함수인지 이해가 가지 않는다..
5-3. np.identity (단위행렬 생성)
.identity 함수는 단위행렬을 만들어준다.
#.identity()
np.identity(4)
6. np.arange()
0부터 입력한 정수까지의 값을 배열
#np.aragnge()
np.arange(12)
7. .reshape(행, 열)
.reshape는 만들어진 1행짜리 배열을 원하는 구조로 만들어준다.
#.reshape
np.arange(12).reshape(3,4)
만일 배열이 불가능하다면 에러가 뜬다.
#.reshape (오류)
np.arange(12).reshape(3,5)
2차원만 가능한 것이 아니라 다차원도 가능하다.
<3차원>
#다차원 reshape
m = np.arange(36).reshape(2,3,6)
m
m.ndim
<4차원>
#4차원도 가능
mm = np.arange(36).reshape(2,2,3,3)
mm
mm.ndim
여기까지 numpy 패키지로 array클래스를 생성하고, 배열, 차원, dtype을 확인하고, 영행렬, 1로만 구성된 행렬, 단위행렬 등을 구성하는 법과 arange함수로 배열을 생성하고 reshape로 array를 원하는 배열로 변경하는 방법을 배웠다.
다음에는 numpy 클래스에서 지원하는 무작위 난수 생성을 공부해보자.