numpProject 1차원배열_백터 삭제 _추가 및 삽입

2023. 6. 9. 16:38IT

반응형

1 차원 배열 삭제

 1. nparray 삭제

  문법:
    arr = np.delete(arr, idx|fancy|slice, axis )

  - 삭제된 새로운 배열을 반환
  - axis=None 이면 flatten 적용됨.
  - slice인 경우에는  np.s_[::2]  형식 사용한다.


 2. 값으로 삭제

    - np.where( (arr==5) | (arr==8)) 활용하여 일치하는 인덱스를 먼저 찾고 삭제한다.

1. idx|fancy|slice 삭제

print("1. idx로 삭제")  
arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.delete(arr,0) # idx 자리 위치 번호로 삭제  
new\_arr1 = np.delete(arr,1)  
print(arr) # \[9 8 7 5 4 3\]  
print(new\_arr) # \[8 7 5 4 3\]  
print(new\_arr1) # \[8 7 5 4 3\]

print("2. fancy 삭제") # \[idx,idx1,idx2,idx2...\]  
arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.delete(arr, \[0,3,5\] ) # fancy 인덱싱 ( 정수배열 인덱싱)  
print(arr) # \[9 8 7 5 4 3\]  
print(new\_arr) # \[8 7 4\]

print("3. slice 삭제, np.s\_\[::2\]")  
arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.delete(arr, np.s\_\[0:4\] ) # slice 삭제  
print(arr) # \[9 8 7 5 4 3\]  
print(new\_arr) # \[4 3\]

2. 값으로 삭제하는 방법

arr = np.array(\[9,8,7,5,4,3\])  
xx = np.delete(arr, np.where(arr == 5)) # 5 값 삭제,  
print(arr) #\[9 8 7 5 4 3\]  
print(xx) # \[9 8 7 4 3\]

print(np.where(arr == 5)) # (array(\[3\], dtype=int64),)  
print(np.where((arr == 5)|(arr==8))) # (array(\[1, 3\], dtype=int64),)

arr = np.array(\[9,8,7,5,4,3\])  
xx = np.delete(arr, np.where((arr==5)|(arr==8))) # 58 값 삭제,  
print(arr) #\[9 8 7 5 4 3\]  
print(xx) # \[9 7 4 3\]

1차원 배열 추가 및 삽입

 1. nparray 추가

  문법:
    arr = np.append(arr, values, axis=None)

  - 추가된 새로운 배열을 반환
  - axis=None 이면 flatten 된후에 추가된다.


 2. nparray 삽입

   문법:
     arr = np.insert(arr, idx|fancy|slice, value,  axis ).

     - fancy 사용시 value와 shape가 일치해야 된다.

1. nparray 추가

np.append(arr, value, axis )

arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.append(arr, \[1,2,3\])  
print(arr) # \[9 8 7 5 4 3\]  
print(new\_arr) # \[9 8 7 5 4 3 1 2 3\]

2. nparray 삽입

np.insert(arr, idx|fancy, value, axis )

가. idx 이용

arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.insert(arr, 0, \[1,2,3\])  
print(arr) # \[9 8 7 5 4 3\]  
print(new\_arr) # \[1 2 3 9 8 7 5 4 3\]

나. fancy 이용

arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.insert(arr, \[0,3,1\], \[1,2,3\]) # 0->1 , 3->2, 1->3 삽입됨. 따라서 갯수가 일치해야 된다.  
print(arr) # \[9 8 7 5 4 3\]  
\# 1 9 8 7 5 4 3 <- 0에 1 삽입후  
\# 1 9 8 7 2 5 4 3 <- 0에 1 삽입후  
\# 1 9 3 8 7 2 5 4 3 <- 1에 3 삽입후  
print(new\_arr) # \[1 9 3 8 7 2 5 4 3\]

다. slice 이용 ==> 일대일 대응되는 형식으로 삽입됨.

arr = np.array(\[9,8,7,5,4,3\])  
new\_arr = np.insert(arr, np.s\_\[0:2\], \[1,2\])  
print(arr) # \[9 8 7 5 4 3\]  
\# 1 9 8 7 5 4 3 <- 0에 1 삽입후  
\# 1 9 2 8 7 5 4 3 <- 1에 2 삽입후  
print(new\_arr) # \[1 9 2 8 7 5 4 3\]
반응형

'IT' 카테고리의 다른 글

numpyProject 타입변경 / 백터연산  (0) 2023.06.12
numpProject 2차원 배열 행렬 생성  (0) 2023.06.09
SQL 문제_B & 마크다운 서식  (0) 2023.06.09
SQL 문제 _ A  (1) 2023.06.09
SQL 문제  (1) 2023.06.09