[Numpy] numpy 기본 함수

Surf in Data·2022년 4월 3일
0

numpy

목록 보기
4/6
post-thumbnail

numpy에서 자주 사용되는 함수들

import numpy as np

numpy documentation

연산 함수

  • add, substract, multiply, divide
x = np.arange(9).reshape(3, 3)
y = np.random.rand(9).reshape(3, 3)
print(x)
print(y)
[[0 1 2]
 [3 4 5]
 [6 7 8]]
[[0.21438346 0.73318512 0.10849893]
 [0.38730067 0.42093761 0.51194177]
 [0.24827118 0.6062043  0.29472661]]
np.add(x, y)
array([[0.21438346, 1.73318512, 2.10849893],
       [3.38730067, 4.42093761, 5.51194177],
       [6.24827118, 7.6062043 , 8.29472661]])
x + y
array([[0.21438346, 1.73318512, 2.10849893],
       [3.38730067, 4.42093761, 5.51194177],
       [6.24827118, 7.6062043 , 8.29472661]])
x - y
array([[-0.21438346,  0.26681488,  1.89150107],
       [ 2.61269933,  3.57906239,  4.48805823],
       [ 5.75172882,  6.3937957 ,  7.70527339]])
x*y
array([[0.        , 0.73318512, 0.21699786],
       [1.161902  , 1.68375042, 2.55970885],
       [1.48962707, 4.24343013, 2.35781292]])
x/y
array([[ 0.        ,  1.36391202, 18.43336174],
       [ 7.74592008,  9.50259597,  9.76673578],
       [24.16712258, 11.54726213, 27.14379904]])

통계 함수

  • 평균, 분산, 중앙, 최대, 최소값 등등 통계 관련된 함수가 내장
print(x)
[[0 1 2]
 [3 4 5]
 [6 7 8]]
np.mean(x)
4.0
np.max(x)
8
np.argmax(x)    #flatten 한 산태로 가정을 하고 max의 인덱스를 반환
8

집계함수

  • 합계(sum), 누적합계(cumsum) 등등 계산 가능
print(x)
[[0 1 2]
 [3 4 5]
 [6 7 8]]
np.sum(x)
105
np.cumsum(x)
array([  0,   1,   3,   6,  10,  15,  21,  28,  36,  45,  55,  66,  78,
        91, 105], dtype=int32)

any, all 함수

  • any: 특정 조건을 만족하는 것이 하나라도 있으면 True, 아니면 False
  • all: 모든 원소가 특정 조건을 만족한다면 True, 아니면 False
  • 기본적인 python으 loop를 빠르게 해결해줄 수 있다.
z = np.random.randn(11)
print(z)
[ 0.25235722 -0.42470051  2.38964772 -0.70211327  0.16246332  3.13480136
  0.11320994 -0.34425512  1.19982835 -0.88760342  0.58338605]
z > 0
array([ True, False,  True, False,  True,  True,  True, False,  True,
       False,  True])
np.any(z > 0)
True
np.all(z > 0)
False

where 함수

  • 조건에 따라 선별적으로 값을 선택 가능
  • 사용 예) 음수인경우는 0, 나머지는 그대로 값을 쓰는 경우
  • 기본적인 python으 loop를 빠르게 해결해줄 수 있다.
v = np.random.randn(10)
print(v)
[-1.15489028  1.67851178  1.87890075  0.82689579  0.86246674 -0.20224624
 -0.35316475  0.41024593 -0.59448554  0.47888509]
np.where(z > 0, z, 0)    #(조건, 참인경우, 거짓인경우)
array([0.25235722, 0.        , 2.38964772, 0.        , 0.16246332,
       3.13480136, 0.11320994, 0.        , 1.19982835, 0.        ,
       0.58338605])
profile
study blog

0개의 댓글