본문 바로가기

FALL in/G.MA's 파이썬

[파이썬 Numpy] - 배열


 배열(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]])



차수는 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