Python/Algorithm

array와 asarray의 차이

언킴 2022. 5. 9. 12:50
반응형

numpy를 사용하는 코드를 참고하다 보면 array를 사용하는 경우와 asarray를 사용하는 경우를 볼 수 있다. 그렇다면 어떤 경우에 array를 쓰고, asarray를 쓰는 것일까? 

 

구조적으로 보면 array와 asarray는 동일하다. 다만, array의 경우 copy=True가 기본값이지만, asarray의 경우 copy=False가 기본값이다. array를 다른 변수에 할당하고 원본을 변경할 경우 array의 copy본은 변경되지 않는다. 그러나 asarray의 경우에는 원본이 변경될 경우 asarray의 복사본까지 변경된다. 

 

a = np.ones([3, 4])

a_array = np.array(a)
a_asarray = np.asarray(a) 

a[1] = 0

print(f'a_array \n {a_array} \n')
print(f'a_asarray \n {a_asarray} \n')


# a_array 
#  [[1. 1. 1. 1.]
#  [1. 1. 1. 1.]
#  [1. 1. 1. 1.]] 

# a_asarray 
#  [[1. 1. 1. 1.]
#  [0. 0. 0. 0.]
#  [1. 1. 1. 1.]]