python
[numpy] numpy 2차원 색인 | 색인을 이용한 값 변경
전감자(◔◡◔)
2022. 9. 29. 01:12
'''
색인을 활용한 값 변경
1. 인덱싱 이용한 데이터 변경
2. 슬라이싱 이용한 데이터 변경
3. fancy 색인 이용한 데이터 변경
4. boolean 색인 이용한 데이터 변경
'''
import numpy as np
arr = np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
# 1. 인덱싱 이용한 데이터 변경
arr[0] = 100
print(arr) # [100 1 2 3 4 5 6 7 8 9]
# 2. 슬라이싱 이용한 데이터 변경
# 가. 일반 파이썬
x = list(range(9))
print(x) # [0, 1, 2, 3, 4, 5, 6, 7, 8]
# x[0:3] = 100 # broadcasting 불가
x[0:3] = [100,200,300] # shape 일치하면 일반 파이썬도 슬라이싱 데이터 변경 가능
print(x)
# 나. numpy의 ndarray
arr = np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
arr[0:3] = 100 # broadcasting 가능
print(arr) # [100 100 100 3 4 5 6 7 8 9]
# 3. fancy 색인 이용한 데이터 변경
arr = np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
arr[[0,2,4]] = 100
print(arr) # [100 1 100 3 100 5 6 7 8 9]
# 모든 값 변경
arr[:] = 999
arr[...] = 888
print(arr)
# 4. boolean 색인 이용한 데이터 변경
arr = np.arange(10)
print(arr) # [0 1 2 3 4 5 6 7 8 9]
arr[arr%2==0] = 100
print(arr) # [100 1 100 3 100 5 100 7 100 9]