더북(TheBook)

배열과 스칼라에 서로 다른 사칙 연산을 조합해서 적용할 수 있다. 대각행렬을 하나 만들고 약간의 잡음(랜덤은 아닌)을 넣어 보자.


noise = np.eye(4) + 0.01 * np.ones((4, ))

noise

>>>

array([[ 1.01, 0.01, 0.01, 0.01],

       [ 0.01, 1.01, 0.01, 0.01],

       [ 0.01, 0.01, 1.01, 0.01],

       [ 0.01, 0.01, 0.01, 1.01]])


그런데 작으면서도 랜덤인 잡음을 만들고 싶다면 어떻게 할까? ‘UNIT 47. 파이썬으로 통계 분석하기’에서 난수 생성기를 자세히 다룰 것이므로 여기서는 간략히 살펴보자.


noise = np.eye(4) + 0.01 * np.random.random([4, 4])

np.round(noise, 2)

>>>

array([[ 1.01, 0. , 0.01, 0. ],

       [ 0.01, 1.01, 0. , 0.01],

       [ 0. , 0. , 1. , 0. ],

       [ 0. , 0. , 0.01, 1. ]])


여기서는 유니버셜(universal) 함수인 round()를 사용해서 행렬을 반올림했는데, 함수를 단 한 번만 호출해서 모든 아이템을 처리했다! 다음 UNIT에서 우리는 ufunc 마법사가 되어 볼 것이다.

 


* 대각행렬 왼쪽 위에서 오른쪽 아래로 향하는 대각선의 원소 외에는 모두 0인 정사각 행렬

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.