Comparison
import numpy as np
a=np.arange(1,4)
print(a<2)
#[ True False False] #boolean array
print(np.any(a>2)) # 하나라도 True면 True다.
#True
print(np.all(a>2)) # 하나라도 False면 False다.
#False
broadcasting되어 각각 element와 2를 비교하게 된다(element wise operation). 결과로 boolean array가 나온다.
any(or) : 하나라도 조건에 만족한다면 true
all(and) : 모두가 조건에 만족한다면 true
import numpy as np
a=np.arange(1,4)
print(a>0)
#[ True True True]
print(a<3)
#[ True True False]
print(np.logical_and(a>0,a<3))
#[ True True False]
logical_not, logical_or도 존재한다.
np.where
import numpy as np
a=np.arange(1,4)
print(a>2)
#[False False True]
print(np.where(a>2, 10,11)) #(조건, true일 때 들어갈 값, false일 때 들어갈 값)
#[11 11 10]
print(np.where(a>2))
#(array([2], dtype=int64),)
true, false일 때 값을 넣지 않으면, true인 index를 반환한다.
isnan, isfinite
import numpy as np
a=np.array([1,np.NaN, np.Inf], dtype=float)
print(np.isnan(a))
#[False True False]
print(np.isfinite(a))
#[ True False False]
finite number은 발산해서 한없이 커져서 메모리 값을 넘어가는 수이다.
nan : none : 숫자가 아닌 값(np.NaN, np.Inf)
argmax, argmin
가장 큰 값 or 가장 큰 값의 index를 반환한다.
import numpy as np
a=np.array([[1,99,3,55,33],[2,98,5,77,32]], dtype=float)
print(np.argmax(a, axis=0))
#[1 0 1 1 0]
print(np.argmin(a, axis=1))
#[0 0]
print(np.argsort(a,axis=0))
# [[0 1 0 0 1]
# [1 0 1 1 0]]
- argmax:가장 큰 값의 index 반환
- argmin:가장 작은 값의 index 반환
- argsort:작은 값 부터 정렬
Boolean index
boolean list에서 true인 값들만 뽑아오는 것
import numpy as np
a=np.array([1,99,3,55,33], dtype=float)
print(a[a>50])
#[99. 55.]
Fancy index
boolean index에서는 boolean값을 넣어줬는데, fancy index는 index value를 넣어준다.
import numpy as np
a=np.array([1,99,3,55,33], dtype=float)
b=np.array([1,3,4])
print(a[b])
print(a.take(b))
# 둘 다 같은 결과 : [99. 55. 33.]
matrix에서도 행, 열 을 각각 array로 넣어서 가져올 수 있다.
import numpy as np
a=np.array([[1,99],[2,88]], dtype=float)
b=np.array([0,0,1,1])
c=np.array([0,1,0,1])
print(a[b,c])
#[ 1. 99. 2. 88.]
Numpy data I/O
np.loadtxt('/hello.txt') #주소
np.savetxt('int_data.csv', a_int,delimiter=',') #저장할 제목, array, 구분할 문자
#npy파일:numpy 파일
np.save("파일명", arr=array이름)
np.load(file='a.npy')
npy파일은 pickle이다.
Reference : 부스트캠프 AI Tech 3기 Pre-Course - Numpy