갈루아의 반서재

copy

copy 함수를 통해 새로운 array 생성 가능

>>> a = np.array([1,2,3], float)

>>> b = a

>>> c = a.copy()

>>> a

array([ 1.,  2.,  3.])

>>> b

array([ 1.,  2.,  3.])

>>> c

array([ 1.,  2.,  3.])


tolist 

array 로부터 list 생성 가능

>>> a = np.array([1, 2, 3], float)

>>> a.tolist() [1.0, 2.0, 3.0]

>>> list(a) [1.0, 2.0, 3.0]

 


tostring / fromstring

tostring 함수(binary 문자열로 변환)와 fromsrting 함수(역으로 binary 에서 array 생성)

대량의 array 데이터 저장에 효율적임

>>> a = array([1, 2, 3], float)

>>> s = a.tostring()

>>> s '\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x08@'

>>> np.fromstring(s) array([ 1., 2., 3.])


fill 

fill 함수를 통해 하나의 값으로 array 를 채울 수 있음 

>>> a = array([1, 2, 3], float)

>>> a array([ 1., 2., 3.])

>>> a.fill(0)

>>> a

array([ 0., 0., 0.])

 


transpose 

array의 축을 서로 바꿔 보여주는 함수

>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> a.transpose()
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])


>>> b = np.array([[1,2],[4,5],[7,8]])
>>> b
array([[1, 2],
       [4, 5],
       [7, 8]])
>>> b.transpose()
array([[1, 4, 7],
       [2, 5, 8]])


flatten 

다차원 array 를 1차원 array로 바꾸는 함수 

>>> a = np.array([[1, 2, 3], [4, 5, 6]], float)

>>> a array([[ 1., 2., 3.], [ 4., 5., 6.]])

>>> a.flatten()

array([ 1., 2., 3., 4., 5., 6.])

 


concatenate 

2개 이상의 array 을 합치는 함수

>>> a = np.array([1,2], float)

>>> b = np.array([3,4,5,6], float)

>>> c = np.array([7,8,9], float)

>>> np.concatenate((a, b, c))

array([1., 2., 3., 4., 5., 6., 7., 8., 9.])

 


1차원 이상의 array 를 결합하는 경우는 아래와 같음

>>> a = np.array([[1, 2], [3, 4]], float)

>>> b = np.array([[5, 6], [7,8]], float)

>>> np.concatenate((a,b))

array([[ 1., 2.],

          [ 3., 4.],

          [ 5., 6.],

          [ 7., 8.]])

>>> np.concatenate((a,b), axis=0)

array([[ 1., 2.],

          [ 3., 4.],

          [ 5., 6.],

          [ 7., 8.]])

>>> np.concatenate((a,b), axis=1)

array([[ 1., 2., 5., 6.],

          [ 3., 4., 7., 8.]])


 


newaxis 를 이용해 차원을 늘릴 수 있다. 적절한 차원의 array 를 생성시 효과적이다.

>>> a = np.array([1, 2, 3], float)

>>> a

array([1., 2., 3.])

>>> a[:,np.newaxis]

array([[ 1.],

         [ 2.],

         [ 3.]])

>>> a[:,np.newaxis].shape

(3,1)

>>> b[np.newaxis,:]

array([[ 1., 2., 3.]])

>>> b[np.newaxis,:].shape

(1,3)