Q: python에서 white noise 만들기

조회수 1272회

제가 만든 함수에 white noise를 넣고 싶습니다. 예를 들어

def black_box_functon(x,y):
    return -x ** 2 - (y - 1) ** 2 + 1

이런 함수를 만들었는데, 여기에 white noise를 추가해서 return하고 싶습니다. 어떻게 해야 할까요? white noise를 만드는 code는 아래와 같습니다.

import numpy
import matplotlib.pyplot as plt

mean = 0
std = 1 
num_samples = 1000
samples = numpy.random.normal(mean, std, size=num_samples)

plt.plot(samples)
plt.show()

이걸 위의 식에 적용할 수 있을까요??

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 질문은 이해를 하고 올리시는 건가요? 화이트노이즈 생성코드로 올린 것은 무작위 벡터를 표현한 이미지입니다 그것을 화이트 노이즈 이미지라고 할 수도 있지요. 그런데 이미지를 black_box_functon 함수에 어떻해 넣어달라는 건지요? 정영훈 2020.1.30 19:51
  • 네 그건 알고 있습니다. 그러니까 저 함수에다가 white noise가 나오게 return 할 수 있는지를 여쭤보는 겁니다. y(x,y) = black_box_functon(x,y) + noise(x,y) 이렇게요. 알 수 없는 사용자 2020.2.2 11:44
  • -.-...DIY 정영훈 2020.2.2 11:59

2 답변

  • 여기에 white noise를 추가해서 return하고 싶습니다.

    고객님의 요구사항에 맞추어, 해당 함수가 white noise를 추가 return하도록 작업하였습니다.
    * 추가 공임비용: 20,000원정

    def black_box_functon(x,y):
        return str(-x ** 2 - (y - 1) ** 2 + 1) + ' white noise'
    
  • 앞전에 올린 농담 코드는 소임을 다한 것 같으니 좀 진지한 답변을 적자면.. 제가 numpy도 모르고 수학도 잘 모르지만 말씀하시는 노이즈라는 건 대충

    입력값에 따라 연속적 출력값을 제공하는 함수에 대하여, 그 출력값에 무작위적으로 추가 부여되는 오차

    를 말씀하시는 거 같습니다.

    만약 그게 전부라면, 사실 기본 얼개는 앞전에 올린 농담 코드와 별로 다를 게 없습니다.

    import random
    
    def black_box_function_with_noise(x, y, range = 1000) :
        return (-x ** 2 - (y - 1) ** 2 + 1) + (random.randrange(-1 * range, range) / float(1000))
    
    print(black_box_function_with_noise(-3, 1))
    print(black_box_function_with_noise(-3, 1))
    print(black_box_function_with_noise(-3, 1))
    # -8.268
    # -7.238
    # -8.377
    

    올려주신 numpy 코드도 실은 그저 -1에서 1 사이의 무작위 유리수를 samples개만큼 뽑아주는 것일 뿐은 아닌지요? 그렇다면 numpy는 핵심이 아니죠. -1에서 1 사이의 무작위 유리수를 얻는 방법이 핵심인 거지요.

    연구해 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)