티스토리 뷰
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]]
'멀티캠퍼스 AI과정 > 03 Numpy' 카테고리의 다른 글
Numpy로 서울의 최고 기온과 날짜 구하기 (0) | 2020.09.09 |
---|---|
Numpy 09 - ndarray의 정렬 (0) | 2020.09.09 |
Numpy 08 - Numpy 집계함수와 axis(축) (0) | 2020.09.09 |
Numpy 07 - ndarray의 전치행렬과 Iterator (0) | 2020.09.09 |
Numpy 06 - ndarray의 사칙연산, 행렬곱, Broadcasting (0) | 2020.09.08 |
댓글