반응형
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.]]
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] 달리기 경주 - Python (0) | 2023.08.24 |
---|---|
[Algorithm] sort()와 sorted()의 차이점 (2) | 2022.08.18 |
[Algorithm] List, Dictionary의 시간 복잡도 (0) | 2022.08.18 |
[Python] python에서 pickle file 다루기 (0) | 2022.06.20 |
빅오, 빅오메가, 빅세타란? (0) | 2022.04.28 |