일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- matplotlib
- Excel
- Apache
- numpy
- gas
- Tkinter
- hive
- Mac
- Redshift
- django
- math
- Kotlin
- 파이썬
- c#
- PostgreSQL
- SQL
- GIT
- Google Spreadsheet
- google apps script
- Java
- Google Excel
- dataframe
- PANDAS
- string
- list
- Github
- PySpark
- array
- Python
- Today
- Total
달나라 노트
Python numpy : copy (array 복사본 생성하기) 본문
import numpy as np
arr_test = np.array([1, 2, 3, 4, 5])
arr_test_2 = arr_test
arr_test_2[1] = 10
print(arr_test)
print(arr_test_2)
위 예시를 봅시다.
arr_test에 [1, 2, 3, 4, 5]를 array로 만들어서 할당했습니다.
그리고 arr_test_2 변수에 arr_test를 그대로 할당하교있죠.
이 시점에서 arr_test == arr_test_2일 것입니다.
arr_test_2[1] = 10
그리고 arr_test_2의 index = 1 값을 10으로 바꿨죠.
그러면 당연히 arr_test_2는 아래와 같이 바뀔겁니다.
[ 1 10 3 4 5]
그러면 이때 arr_test는 [1 2 3 4 5] 일까요?
위 코드의 실행 결과를 봅시다.
import numpy as np
arr_test = np.array([1, 2, 3, 4, 5])
arr_test_2 = arr_test
arr_test_2[1] = 10
print(arr_test)
print(arr_test_2)
-- Result
[ 1 10 3 4 5]
[ 1 10 3 4 5]
마지막의 arr_test, arr_test_2를 각각 print했는데 둘 다 [ 1 10 3 4 5]로 출력됩니다.
왤까요?
그 이유는 array를 다른 변수에 그대로 할당했다고 할지라도 이 둘은 array를 공유합니다.
따라서 arr_test를 arr_test_2에 할당했다고 할지라도 이 둘은 동일한 array를 공유하므로,
arr_test_2의 값에 변화를 주면 arr_test도 값이 변하는겁니다.
이같은 상황을 방지하고, 만약 정말 array를 다른 변수에 할당해서 둘이 독립적으로 다루고싶다면 copy method를 사용하면 됩니다.
import numpy as np
arr_test = np.array([1, 2, 3, 4, 5])
arr_test_2 = arr_test.copy()
arr_test_2[1] = 10
print(arr_test)
print(arr_test_2)
-- Result
[1 2 3 4 5]
[ 1 10 3 4 5]
위처럼 arr_test를 arr_test_2에 할당할 때 copy method를 이용해서 할당하면
array의 복사본을 arr_test_2에 할당하므로 arr_test와 arr_test_2는 서로 독립적인 array를 가지고 있게 됩니다.
따라서 arr_test_2에 값 변화가 있어도 arr_test에는 값의 변화가 없죠.
'Python > Python numpy' 카테고리의 다른 글
Python numpy : min, max (np.min, np.max, 최소값, 최대값) (0) | 2021.12.29 |
---|---|
Python numpy : tolist (array를 list로 변환. array list) (0) | 2021.12.29 |
Python numpy : zeros (0으로 채워진 array 생성) (0) | 2021.12.27 |
Python numpy : flatten, flat (array를 1차원으로 변환, 1차원 array indexing) (0) | 2021.12.27 |
Python numpy : T (numpy array transpose, array 행/열 바꾸기) (1) | 2021.12.27 |