Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 포스코 청년
- Brightics Studio
- 브라이틱스
- 삼성SDS
- 추천시스템
- 삼성 SDS Brigthics
- Brigthics
- 혼공학습단
- Brigthics Studio
- Brightics
- 직원 이직률
- 개인 의료비 예측
- 영상제작기
- 혼공머신
- 노코드AI
- 데이터 분석
- 직원 이직여부
- 모델링
- 혼공
- 데이터분석
- Brigthics를 이용한 분석
- 삼성SDS Brigthics
- Brightics를 이용한 분석
- 포스코 아카데미
- 혼공머신러닝딥러닝
- 캐글
- 삼성SDS Brightics
- 삼성 SDS
- 브라이틱스 서포터즈
- 팀 분석
Archives
- Today
- Total
데이터사이언스 기록기📚
[Numpy] ndarray 데이터 형태 바꾸기(ravel, flatten, reshape) 본문
1. 다차원 배열을 1차원으로 변경
1) ravel
- np.ravel(x), x.ravel()은 동일하게 출력
x = np.arange(15).reshape(3,5)
print(x)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
# 값 동일
np.ravel(x)
x.ravel()
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
- order 파라미터 : 'C'는 row 우선변경, 'F'는 column 우선변경
- 'C'가 기본 옵션
np.ravel(x)
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
np.ravel(x, order = 'F')
# array([ 0, 5, 10, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14])
- 값을 복사하지 않고 유지
temp = np.ravel(x)
print(temp)
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
# 값을 복사하지 않고 유지
temp[0] = 100
print(temp)
# [100 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
print(x)
# [[100 1 2 3 4]
# [ 5 6 7 8 9]
# [ 10 11 12 13 14]]
2) flatten
- order 파라미터 : 'C'는 row 우선변경, 'F'는 column 우선변경
y = np.arange(15).reshape(3,5)
print(y)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
# order 파라미터 기본값
t2 = y.flatten()
print(t2)
# [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
# order 파라미터 F
t2 = y.flatten(order = 'F')
print(t2)
# [ 0 5 10 1 6 11 2 7 12 3 8 13 4 9 14]
- 내부에 copy본을 만들어서 변경(copy본의 값을 바꾸면 원래 값은 영향 없음)
t2[0] = 100
print(t2)
# [100 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
print(y)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
2. array의 shape을 다른 차원으로 변경
1) reshape
- 행 * 열 값이 원래의 원소 크기와 같아야 함(여기서는 6*6=36으로 가능)
- 곱이 맞지 않으면 오류로 반환 불가
- '-1'값을 주면 유추해서 숫자를 넣어줌
x = np.arange(36)
print(x)
# [ 0 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 31 32 33 34 35]
# 행*열 값이 원래의 원소 크기와 같아야 함
# 곱이 맞지 않으면 반환 불가
x.reshape(6,6)
# array([[ 0, 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, 31, 32, 33, 34, 35]])
# -1값을 주면 값을 유추해서 넣어주는 것, 위의 코드와 결과 동일
x.reshape(6,-1)
# array([[ 0, 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, 31, 32, 33, 34, 35]])
728x90
'Data > Data' 카테고리의 다른 글
Comments