이미지출처
syntax 약속
본 포스팅은 KT 에이블스쿨 교육내용을 바탕으로 제 나름대로 정리하여 작성하였습니다
배열을 이용하게 해줄 수 있는 파이썬 라이브러리
파이썬에서 가장 유명한 라이브러리 중 하나
list
랑 비슷하다
넘파의 각종 내장 메소드들을 이용하여 요소들을 한번에 처리할 수 있다.
예를들어 list
같은경우는 list * 숫자
를 하면 숫자만큼 리스트가 복사되었지만,
배열에서는 요소에 값을 하나하나 곱해줄 수 있다.
리스트는 저거 하려면 for문으로 만들어줘야 한다... ㅋㅋ
하지만 장점만 있는건 아니다. 여러가지 자료형으로 존재할 수 있는 list
와 달리 한가지 자료형으로만 존재할 수 있다.
import numpy as np
import
를 이용해 불러올 수 있고, 보통 as
를 이용해 np
라는 별칭으로 사용한다.
np.array(리스트)
배열의 정보를 확인할 수 있는 다양한 속성(메소드와 함수와는 또 다름)들이 있다.
리스트.ndim
배열의 차원(=축의 갯수)를 int
로 반환한다.
리스트.shape
배열의 크기를 tuple
로 반환한다.
리스트.dtype
배열의 자료형을 반환한다.
배열은 한가지 자료형만 가질 수 있는것을 기억하자
배열.reshape(원하는 형태)
배열을 다양한 형태(shape)로 변환해준다.
배열에 포함된 요소가 사라지지 않는 형태, 즉 요소의 숫자가 같은 형태로만 변활할 수 있다.
-> (원래 배열의 행 수) * (원래 배열의 열 수) = (바꾸려는 함수의 행수) * (바꾸려는 함수의 열 수)
Reshape
할 수 있다.당연히 첫 번째 값은 0 부터 시작한다.
1차원 배열의 인덱싱은 리스트랑 일치하기에 생략
syntax
arrayname[row, column]
arrayname
배열명
row
인덱싱 하고 싶은 행, int
값이다.
column
인덱싱 하고 싶은 열, int
값이다.
row
, column
부분에 리스트를 넣어서 여러 값을 조회 가능하다.
':' 를 이용하여 전체를 조회 할 수 있다.
범위를 지정하여 위치의 요소를 조회 할 수 있다. 인덱싱이랑 매우 유사하다.
마지막 범위 값은 대상에 포함되지 않는다는 점을 유의하자!
':' 를 이용해도 마지막 인덱스 값은 포함되지 않는다.
즉, 배열[1:M, 2:N]이라면 1 ~ M-1행, 2 ~ N-1열이 조회 대상이 된다.
syntax
arrayname[rowarea, columnarea]
arrayname
배열명
rowarea
슬라이싱 하고 싶은 행의 범위, 행N:행M
형태로 나타낸다.
물론 행1, 행2 의 값은 int
이다.
columnarea
도 열의 범위인 점을 제외하고는 같기에 생략.
한눈에 보는 인덱싱과 슬라이싱
조건에 맞는 요소를 선택하는 선택하는 방식이다.
조회 결과는 '1차원 배열' 이 된다.
syntax
arrayname[conditions]
conditions
조회를 원하는 조건을 의미한다.
&
와 |
를 이용하여 여러가지 조건을 조회할 수 있다. 각각 and
와 or
역할을 수행한다.
예시
# 2차원 배열 만들기
score= np.array([[78, 91, 84, 89, 93, 65],
[82, 87, 96, 79, 91, 73]])
# 짝수만 조회
print(score[score % 2 == 0])
[78 84 82 96]
다양한 함수 혹은 연산자를 이용하여 배열 성분간의 다양한 연산을 할 수 있다.
행렬에 대한 연산도 가능하나 선형대수에 대한 도메인 지식이 필요하므로 생략하겠다.
+
혹은 np.add()
-
혹은 np.substract()
*
혹은 np.multiply()
/
혹은 np.divie()
**
혹은 np.power()
np.sqrt()