복붙노트

[PYTHON] 동일한 random numberpy 배열을 일관되게 생성합니다.

PYTHON

동일한 random numberpy 배열을 일관되게 생성합니다.

다른 개발자가 -1,0 또는 1 값의 np 배열 (100,2000)을 반환하는 코드를 완성 할 때까지 기다리고 있습니다.

그 동안 무작위로 동일한 특성의 배열을 만들어서 개발 및 테스트를 시작할 수 있습니다. 이 무작위로 생성 된 배열을 매번 동일하게하고 싶기 때문에, 프로세스를 다시 실행할 때마다 값을 계속 변경하는 배열을 테스트하지 않습니다.

이런 식으로 배열을 만들 수 있지만, 매번 같은 방식으로 배열을 만들 수 있습니다. 나는 피클을 피클 할 수 있고 그것을 unpickle 수 있지만, 다른 방법이 있는지 궁금해.

r = np.random.randint(3, size=(100, 2000)) - 1

해결법

  1. ==============================

    1.난수 생성기에 고정 값 (예 :

    난수 생성기에 고정 값 (예 :

    numpy.random.seed(42)
    

    이렇게하면 항상 동일한 난수열을 얻을 수 있습니다.

  2. ==============================

    2.선택한 시드로 numpy.random.RandomState ()의 인스턴스를 만듭니다. numpy.random.seed ()는 자신의 RandomState 인스턴스를 전달하지 못하게하는 유연한 라이브러리를 제외하고는 사용하지 마십시오.

    선택한 시드로 numpy.random.RandomState ()의 인스턴스를 만듭니다. numpy.random.seed ()는 자신의 RandomState 인스턴스를 전달하지 못하게하는 유연한 라이브러리를 제외하고는 사용하지 마십시오.

    [~]
    |1> from numpy.random import RandomState
    
    [~]
    |2> prng = RandomState(1234567890)
    
    [~]
    |3> prng.randint(-1, 2, size=10)
    array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])
    
    [~]
    |4> prng2 = RandomState(1234567890)
    
    [~]
    |5> prng2.randint(-1, 2, size=10)
    array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])
    
  3. ==============================

    3.임의의 상태에 의존하는 다른 함수를 사용하는 경우에는 전체 시드 및 시드를 설정할 수는 없지만 대신 숫자의 무작위 목록을 생성하고 함수의 매개 변수로 시드를 설정하는 함수를 만들어야합니다. 이렇게하면 코드에서 다른 임의의 생성기를 방해하지 않습니다.

    임의의 상태에 의존하는 다른 함수를 사용하는 경우에는 전체 시드 및 시드를 설정할 수는 없지만 대신 숫자의 무작위 목록을 생성하고 함수의 매개 변수로 시드를 설정하는 함수를 만들어야합니다. 이렇게하면 코드에서 다른 임의의 생성기를 방해하지 않습니다.

    # Random states
    def get_states(random_state, low, high, size):
        rs = np.random.RandomState(random_state)
        states = rs.randint(low=low, high=high, size=size)
        return states
    
    # Call function
    states = get_states(random_state=42, low=2, high=28347, size=25)
    
  4. from https://stackoverflow.com/questions/5836335/consistently-create-same-random-numpy-array by cc-by-sa and MIT license