broadcasting
- 특정한 어떤 조건이 맞을 때 모양이 다른 배열끼리도 연산 가능
- Shape이 같은 두 ndarray에 대한 연산은 각 원소별로 진행
- 두 배열 간의 연산에서 최소한 하나의 배열의 차원이 1인 경우 반복 확장되어 연산
a = np.arange(12).reshape(4, 3)
b = np.arange(10, 13)
a + b
array([[10, 12, 14],
[13, 15, 17],
[16, 18, 20],
[19, 21, 23]])
a * b
array([[ 0, 11, 24],
[ 30, 44, 60],
[ 60, 77, 96],
[ 90, 110, 132]])
연산 함수
add, substract, multiply, divide
.linalg.inv
역행렬 구하는 함수
모든 차원의 값이 같아야 함
.linalg.solve
- Ax = B 형태의 선형대수식 솔루션 제공
A = np.array([[2, 6], [5, 3]])
B = np.array([44, 62])
x = np.linalg.solve(A, B)
print(x)
np.allclose(A@x, B)
[10. 4.]
True
통계 함수
- mean, var, std, median
- max, min, argmax, argmin
- sum, cunsum
any, all 함수
- any: 특정 조건을 만족하는 것이 적어도 하나 있으면 True, 아니면 False
- all: 모든 원소가 특정 조건을 만족하면 True, 아니면 False
where 함수
np.where(condition, [x, y])
지수/로그 함수
- np.exp()
- np.log()
sort
a.sort(axis=-1, kind=None, order=None)
boolean indexing
ndarry 인덱싱 시, bool 리스트를 전달하여 True인 경우만 필터링
브로드캐스팅을 활용하여 ndarray로 부터 bool list 얻음
다중조건 사용
파이썬 논리 연산자 and, or, not 키워드 사용 불가
& : AND
| : OR
x = np.random.randint(1, 100, size=10)
print(x)
[19 30 15 50 84 79 36 11 75 21]
x[x > 30]
array([50, 84, 79, 36, 75])