잘생긴 얼음의신님의 이글루입니다

qordidtn02.egloos.com

포토로그



[python]array to list, list to array - np.array, tolist() python

python에서 array를 list로 변환, list를 array로 변환하는 법을 다뤄보겠습니다.

아래의 예제코드를 보면서 설명드리겠습니다.

import numpy as np
data = [[0.1,0.2], [0.1,0.2]]
data = numpy.array(data)
print("array :\n",data)

data = data.tolist()
print("list:\n",rdata)

python에서는 일반적으로 data = [[0.1,0.2], [0.1,0.2]]와 같이 선언을 할 경우  list type으로 할당됩니다.
list를 array로 바꾸고 싶다면  data = numpy.array(data)와 같이 numpy.array함수를 이용하면 쉽게 변환이 가능합니다.

반대로 array를 list로 바꾸고 싶다면 data = data.tolist()와 같이 tolist()를 이용해 쉽게 변환이 가능합니다.

실제로 출력된 결과는 아래와 같습니다.

array :
 [[ 0.1  0.2]
 [ 0.1  0.2]]
list:
 [[0.1, 0.2], [0.1, 0.2]]

array일 때와 list일때  생김새가 다르다는 것을 알 수 있습니다.
실제로 shape을 출력해보면 동일하지만 동일한 차원이지만 shape을 출력하는 방식은 다릅니다. 

import numpy as np
data = [[0.1,0.2], [0.1,0.2]]
data = np.array(data)
print("array :\n",data.shape)

data = data.tolist()
print("list:\n",np.shape(data))
print("list:\n",data.shape)

array의 경우 data.shape을 이용해 접근이 가능하고 list의 경우에는 np.shape(data)를 이용해야만 접근이 가능합니다. 
이경우data.shape과 np.shape(data)의 결과는 둘 다 (2,2)로 동일하게 출력됩니다.
그럼 list data를 data.shape으로 접근하면 어떻게 나올까요?

AttributeError: 'list' object has no attribute 'shape'

위와 같은 error메세지가 나오면서 동작하지 않게 됩니다. 

실제로 위 코드의 출력결과는 아래와 같습니다.
array :
 (2, 2)
list:
 (2, 2)
AttributeError: 'list' object has no attribute 'shape'


이상 list to array, array to list방법이었습니다!!


덧글

댓글 입력 영역