

例えば以下の二つのファイルでtest.pyの2行目でfunc1が呼び出された時点でseedが42に固定されていてbもseed42から生成されたものになります。いまbだけseedを固定させないで発生させたいのです。  
func.py

[code]

    import numpy as np
    def func1():
        np.random.seed(42)
        return np.random.rand()
    
[/code]

test.py

[code]

    import func
    a = func.func1()
    b = np.random.rand()
    
[/code]


CC BY-SA 4.0
2018-12-01T05:20:25.093
50800
2019-10-27T18:16:26.270
31202
question
python
一部だけ乱数シードの影響をさせたくない


np.random.seedを引数なしで呼ぶことで、別の値で初期化できます。

[code]

    from func import func1
    import numpy as np
    
    
    def func1():
        np.random.seed(42)    # Static seed
        return np.random.rand()
    
    
    def func2():
        np.random.seed()    # Random seed
        return np.random.rand()
    
    
    def func3():
        np.random.seed(100)    # Other static seed
        return np.random.rand()
    
    
    def main():
        val_1 = func1()
        val_2 = func2()
        val_3 = func3()
        print("val_1: {:.2}\nval_2: {:.2}\nval_3: {:.2}\n".format(val_1, val_2, val_3))
    
    
    if __name__ == "__main__":
        main()
    
[/code]


CC BY-SA 4.0
2018-12-01T05:47:58.673
50803
2018-12-01T05:47:58.673
29826
50800
answer


[numpy.RandomState()](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.RandomState.html)
を使って、新たに生成器を作成すれば良いのではないでしょうか。

[code]

    b = np.random.RandomState().rand() 
    
[/code]

\-- この回答は、[metropolis](https://ja.stackoverflow.com/users/16894/metropolis)
さんの[コメント](https://ja.stackoverflow.com/questions/50800/%E4%B8%80%E9%83%A8%E3%81%A0%E3%81%91%E4%B9%B1%E6%95%B0%E3%82%B7%E3%83%BC%E3%83%89%E3%81%AE%E5%BD%B1%E9%9F%BF%E3%82%92%E3%81%95%E3%81%9B%E3%81%9F%E3%81%8F%E3%81%AA%E3%81%84#comment53061_50800)をコミュニティ
wiki 回答として投稿したものです。


CC BY-SA 4.0
2019-10-27T18:16:26.270
60023
2019-10-27T18:16:26.270
19110
50800
answer