배열(Arrays) |
리스트는 서로다른 타입을 요소로 가질수있다. numpy의 array는 다른 타입섞을수 없다.
array는 인덱스를 튜플로 보여준다.(a,b)
(as ->numpy.~ 안하고 np.~가능하도록)
>>> import numpy as np
>>> gma = np.array([1,2,3,4]) # 1차원 배열이 생성된다.
>>> print type(gma)
<type 'numpy.ndarray'>
>>> print gma[0],gma[1],gma[2],gma[3] # 배열의 인덱스 접근이 가능하다.
1 2 3 4
>>> gma[1] = 0 # 배열요소의 변경이 가능하다.
>>> print gma
[1 0 3 4]
>>>
>>> gma2 = np.array([[1,2,3],[4,5,6]]) # 2차원 배열이 생성된다.
>>> print gma2.shape # 2차원배열의 크기(모양)이 출력된다.
(2, 3)
>>> # 2 by 3 행렬이라는 의미이다.(열2개 행3개)
...
>>> print gma2
[[1 2 3]
[4 5 6]]
>>> print gma2[0,2], gma2[1,1]
3 5
- 차수(rank)
- 모양(shape)
2 X 3(2 by 3)배열을 예를들어서 보자
arr = np.array([[1,2,3],[4,5,6]])
1 |
2 |
3 |
4 |
5 |
6 |
차수는 2이다.(2차원 배열) 만약 2 X 3 X 3배열이었다면 차수는 3이다.(3차원 배열)
2차원 배열은 행과 열로 이루어져있으므로 흔히 말하는 '행렬'이라고 할수있다.(차수가 2인 배열은 행렬!)
3차원 배열은 평면, 행, 열로 이루어져있다.
배열의 shape은 (2,3)이다.
만약 np.array([1,2,3])과 같은 배열을 만들었다면 차수는 1이고(1차원배열:1차원배열은 열로만 구성) shape은 (3,)이 된다. (1 X 3라는 뜻이다.)
일차원배열의 shape은 (배열크기 , )이렇게 나타낸다.
예를들어
(1,3)과 (3,)은 같은 차원이라고 할수없다.
똑같은 1 X 3 배열을 모양이지만 (1,3)은 2차원배열이고 (3,)은 1차원배열이다.
(1,3)은 np.array([[1,2,3]])과 같이 초기화 되었고,
(3,)은 np.array([1,2,3])와 같이 초기화 되었다.
>>> import numpy as np
>>> a = np.zeros((2,2)) # 요소가 모두 0인 2 by 2 행렬을 만든다.
>>> print a
[[ 0. 0.]
[ 0. 0.]]
>>> b = np.ones((1,2)) # 요소가 모두 1인 1 by 2 행렬을 만든다.
>>> print b
[[ 1. 1.]]
>>> c = np.full((2,2),5) # 요소가 모두 2인 2 by 2 행렬을 만든다.
>>> print c
[[ 5. 5.]
[ 5. 5.]]
>>> d = np.eye(2) # 2 by 2 모양은 항등행렬을 만든다.(주대각선은 1 나머지는 0)
>>> print d
[[ 1. 0.]
[ 0. 1.]]
>>> e = np.random.random((2,2)) # 랜덤값들로 채워진 2 by 2 행렬을 만든다.
>>> print e
[[ 0.31693123 0.98427261]
[ 0.51954829 0.03167437]]
random함수는 0에서 1사이의 랜덤한 값을 반환해준다.
만약 0에서 10사이의 랜덤값을 얻고싶다면 단순히 10을 곱해주면된다. (0~100도 마찬가지)
'FALL in > G.MA's 파이썬' 카테고리의 다른 글
[파이썬 Numpy] - 데이터 타입 (0) | 2016.03.28 |
---|---|
[파이썬 Numpy] - 배열 인덱싱 (0) | 2016.03.28 |
[파이썬 클래스] (0) | 2016.03.26 |
[파이썬 함수] (0) | 2016.03.26 |
[파이썬 Containers] - 튜플 (0) | 2016.03.26 |