티스토리 뷰

ndarray의 원소 추가와 삭제

1) concatenate()

원소 추가

  • ndarray에 row(s) 혹은 column(s)을 추가 하기 위한 함수
  • result = np.concatenate(어떤것을 서로 붙일지, 행으로 붙일지 열로 붙일지)
  • axis=0: 행방향/ 가로방향
  • Python list의 원소 추가 : append()
  • ndarray의 원소 추가
    • append()가 있긴 하지만 잘 쓰진 않는다.
    • concatenate()를 더 많이 쓴다.

하나의 ndarray와 다른 ndarray 연결

  • arr에 new_row vector를 하단에 붙인다.
  • 결과적으로 3 x 3 matrix 생성
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]]) # 2 x 3 ndarray
new_row = np.array([7, 8, 9])

# arr에 new_row vector를 하단에 붙인다.
# 결과적으로 3 x 3 matrix 생성

result = np.concatenate((arr, new_row.reshape(1, 3)), axis=0)
print(result)
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

2) delete()

  • axis를 기준으로 행과 열을 삭제
  • 만약 axis를 지정하지 않으면 1차원 배열로 변환 후 삭제
  • 원본을 변경하지 않고 처리가 된 새 배열을 return

axis를 지정하지 않으면, 1차원 배열로 자동변경된 후 인덱스 삭제

import numpy as np

np.random.seed(1)
arr = np.random.randint(0, 10, (3, 4))

result = np.delete(arr, 1) # axis가 설정되지 않았기 때문에
                           # 1차원 배열로 자동 변경된 후 인덱스를 삭제
print(result)
# [5 8 9 5 0 0 1 7 6 9 2 4]
# [5 9 5 0 0 1 7 6 9 2 4]

axis=0=> 행 번호, axis=1 => 열 번호 삭제

np.random.seed(1)

arr = np.random.randint(0, 10, (3, 4))
print(arr)
# [[5 8 9 5]
#  [0 0 1 7]
#  [6 9 2 4]]

result = np.delete(arr, 1, axis=0) # 행번호 1번 삭제           
print(result)
# [[5 8 9 5]
#  [6 9 2 4]]

result = np.delete(arr, 1, axis=1) # 열번호 1번 삭제           
print(result)
# [[5 9 5]
#  [0 1 7]
#  [6 2 4]]
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
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
글 보관함