### 2021.12.18

 

 

배열 값 삽입

  • insert(): 배열의 특정 위치에 값 삽입
  • axis를 지정하지 않으면 1차원 배열로 변환
  • 추가할 방향을 axis로 지정
  • 원본 배열 변경없이 새로운 배열 반환
#In[1]
import numpy as np
a1 = np.array([1,2,3,4,5])
 
print(a1)
b1 = np.insert(a1, 0, 10)    # a1의 0번째에 10을 넣어라!
print(b1)

#Out[1]
[1 2 3 4 5]
[10  1  2  3  4  5]

#In[2]
print(a1)
#Out[2]
[1 2 3 4 5]      #a1의 값은 변하지 않는다!

#In[3]
c1 = np.insert(a1, 2, 10)
print(c1)
#Out[3]
[ 1  2 10  3  4  5]
#In[1]
a2 = np.array([[1,2,3,], [4,5,6], [7,8,9]])
print(a2)
#Out[1]
[[1 2 3]
 [4 5 6]
 [7 8 9]]

#In[2]
b2 = np.insert(a2, 1, 10, axis=0)
print(b2)
#Out[2]
[[ 1  2  3]
 [10 10 10]
 [ 4  5  6]
 [ 7  8  9]]

#In[3]
c2 =np.insert(a2, 1, 10, axis=1)
print(c2)
#Out[3]
[[ 1 10  2  3]
 [ 4 10  5  6]
 [ 7 10  8  9]]

 

배열 값 수정

  • 배열의 인덱싱으로 접근하여 값 수정
#In[]
print(a1)
a1[0] = 6
a1[1] = 7
print(a1)

#Out[]
[1 2 3 4 5]
[6 7 3 4 5]
#In[1]
a1[0:1] = 9
print(a1)
#Out[1]
[9 7 3 4 5]

#In[2]
i = np.array([1,3,4])
a1[i] = 0
print(a1)
#Out[2]
[9 0 3 0 0]

#In[3]
a1[i] += 4
print(a1)
#Out[3]
[9 4 3 4 4]
#In[]
print(a2)
a2[1, 1] = 1
a2[2, 2] = 2
a2[0] = 1
print(a2)

#Out[]
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[1 1 1]
 [4 1 6]
 [7 8 2]]
#In[1]
a2[1:, 2] = 9
print(a2)

#Out[1]
[[1 1 1]
 [4 1 9]
 [7 8 9]]

#In[2]
row = np.array([0,1])
col = np.array([1,2])
a2[row,col] = 0
print(a2)

#Out[2]
[[1 0 1]
 [4 1 0]
 [7 8 9]]

 

배열 값 삭제

  • delete(): 배열의 특정 위치에 값 삭제
  • axis를 지정하지 않으면 1차원 배열로 변환
  • 삭제할 방향을 axis로 지정
  • 원본 배열 변경없이 새로운 배열 반환
#In[]
print(a1)
b1 = np.delete(a1, 1)
print(b1)

#Out[]
[9 4 3 4 4]
[9 3 4 4]
#In[1]
print(a2)
#Out[1]
[[1 0 1]
 [4 1 0]
 [7 8 9]]

#In[2]
b2 = np.delete(a2, 1, axis=0)
print(b2)
#Out[2]
[[1 0 1]
 [7 8 9]]

#In[3]
c2 = np.delete(a2, 1, axis=1)
print(c2)
#Out[3]
[[1 1]
 [4 0]
 [7 9]]

 

배열 복사

  • 리스트 자료형과 달리 배열의 슬라이스는 복사본이 아님
#In[1]
print(a2)
#Out[1]
[[1 0 1]
 [4 0 0]
 [7 8 9]]

#In[2]
a2_sub = a2[:2, :2]
print(a2_sub)
#Out[2]
[[1 0]
 [4 0]]

#In[3]
a2_sub[:, 1] = 2
print(a2_sub)
#Out[3]
[[1 2]
 [4 2]]

#In[4]
print(a2)
#Out[4]
[[1 2 1]
 [4 2 0]
 [7 8 9]]
 
 #넘파이는 슬라이싱한 값이 변경되면 원본값도 변경된다.
  • copy(): 배열이나 하위 배열 내의 값을 명시적으로 복사
#In[1]
print(a2)
#Out[1]
[[1 2 1]
 [4 2 0]
 [7 8 9]]
 
#In[2]
a2_sub_copy = a2[:2, :2].copy()
print(a2_sub_copy)
#Out[2]
[[1 2]
 [4 2]]

#In[3]
a2_sub_copy[:, 1] = 0
print(a2_sub_copy)
#Out[3]
[[1 0]
 [4 0]]

#In[4]
print(a2)
#Out[4]
[[1 2 1]
 [4 2 0]
 [7 8 9]]
 
 #copy()를 통해서 복사하면 원본은 변경이 되지 않는다.

'Youtube > NumPy' 카테고리의 다른 글

[NumPy] #5 배열 연산  (0) 2021.12.18
[NumPy] #4 배열 변환  (0) 2021.12.18
[NumPy] #2 배열조회  (0) 2021.12.16

+ Recent posts