| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- numpy
- tree.fit
- DataFrame
- 등비수열
- 통계학
- 조합
- plt
- 리스트
- 머신러닝
- 자료구조
- Machine Learning
- MacOS
- Slicing
- SQL
- 스터디노트
- 순열
- python
- maplotlib
- 파이썬
- Folium
- 등차수열
- pandas filter
- 문제풀이
- 재귀함수
- matplotlib
- pandas 메소드
- INSERT
- pandas
- 기계학습
- barh
Archives
- Today
- Total
코딩하는 타코야끼
[NumPy] 2'_배열 원소 조회 / 배열 형태 변경_연산 본문
728x90
반응형
인덱싱과 슬라이싱을 이용한 배열의 원소 조회 및 변경
배열 인덱싱(Indexing)
index
- 배열내의 원소의 식별번호
- 0부터 시작
indexing
- ****– index를 이용해 원소 조회
- [ ] 표기법 사용
구문
- ndarray[index]
- 양수는 지정한 index의 값을 조회한다.
- 음수는 뒤부터 조회한다.
- 마지막 index가 -1
- 2차원배열의 경우
- arr[0축 index, 1축 index]
- 파이썬 리스트와 차이점
- N차원 배열의 경우
- arr[0축 index, 1축 index, ..., n축 index]
- 팬시(fancy) 인덱싱
- 여러개의 원소를 한번에 조회할 경우 리스트에 담아 전달한다.
- 다차원 배열의 경우 각 축별로 list로 지정
arr[[1,2,3,4,5]]- 1차원 배열(vector): 1,2,3,4,5 번 index의 원소들 한번에 조회
arr[[0,3], [1,4]]- [0,3] - 1번축 index list, [1,4] - 2번축 index list
- 2차원 배열(matrix): [0,1], [3,4] 의 원소들 조회

-

코드리뷰


- 1. 조회.
a[1] >> 1- 2. 여러 index들의 값 조회 -> fancy indexing => index들을 리스트로 묶어서 전달.
a[[1,3,2,7]] >>array([1, 3, 2, 7])- 3. 변경.
a[1] = 1000 a >> array([ 0, 1000, 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])- 4. 일괄변경
a[[8, 9, 10]] = 8000, 9000, 10000 a >>array([ 0, 1000, 5000, 3, 5000, 5000, 6, 7, 8000, 9000, 10000, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]) a[[2, 4, 5]] = 5000 a >>array([ 0, 1000, 5000, 3, 5000, 5000, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])- 5. ( 30 , ) 1차원배열을 ( 5 , 6 ) 2차원배열로 reshape.
- size만 동일하면 reshape 가능!!!!
a2[0] # 0축의 index 0을 조회 a2[0,3] # a[axis0, axis1] a2[-1,-1] >>29 a2 = np.arange(30).reshape(5, 6) a2 >>>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]])
- size만 동일하면 reshape 가능!!!!
- 6. Fancy indexing 으로 조회.
a2[[0,3], [2,4]] >>array([ 2, 22])- [ 0 , 2 ] 와 [ 3 , 4 ]를 조회한 것이다.
a3[0,1,1] a3[1,1,2] >>11a3[[0,1],[1,1],[1,2]] >>array([ 4, 11]) array([ 2, 22])array([ 2, 22]) >>array([[[ 0, 1, 2], [ 3, 4, 5]], [[ 6, 7, 8], [ 9, 10, 11]]])
- [ 0 , 2 ] 와 [ 3 , 4 ]를 조회한 것이다.
a2[0, 2] a2[3, 4] >>22
슬라이싱
- 배열의 원소들을 범위로 조회한다.
- ndarry[start : stop : step ]
- start : 시작 인덱스. 기본값 0
- stop : 끝 index. stop은 포함하지 않는다. 기본값 마지막 index
- step : 증감 간격. 기본값 1
다차원 배열 슬라이싱
- 각 축에 slicing 문법 적용
- 2차원의 경우
- arr [0축 slicing, 1축 slicing]
arr[:3, :]
,로 축을 구분한 다중 슬라이싱 사용
- arr [0축 slicing, 1축 slicing]
- 다차원의 경우
- arr[0축 slicing, 1축 slicing, ..., n축 slicing]
- slicing과 indexing 문법은 같이 쓸 수 있다.
슬라이싱은 원본에 대한 View
- slicing한 결과는 새로운 배열을 생성하는 것이 아니라 기존 배열을 참조한다.
- slicing한 배열의 원소를 변경하면 원본 배열의 것도 바뀐다.
- 배열.copy()
- 배열을 복사한 새로운 배열 생성
- 복사후 처리하면 원본이 바뀌지 않는다.
-

반응형
'[T.I.L] : Today I Learned > Python' 카테고리의 다른 글
| [Python] 4강_제어문, 컴프리헨션 (0) | 2023.04.04 |
|---|---|
| [Python] 3강_자료구조 (0) | 2023.04.04 |
| [Python] 2강_데이터타입 (0) | 2023.04.02 |
| [Python] 1강_프로그래밍 개요 (0) | 2023.04.02 |
| [NumPy] 개요 및 배열 생성 (0) | 2023.03.28 |