我在某人的代码中看到了这种模式:
import numpy as np # Create array xx = np.linspace(0.0,100.0,num=100) # Add Noise xx = np.random.normal(xx)
它似乎为数组的每个值添加了一些噪音,但我找不到任何相关的文档.发生了什么?是什么决定了噪音的属性(即缩放)?给定值是否被视为来自正态分布的每个采样的平均值(即loc参数)?
我也很想知道为什么文档中似乎没有涵盖这种行为.
解决方法
我也没有看到它记录,但许多numpy函数采用ndarray将
operate on it element-wise.无论如何,你可以很容易地验证,当它传递一个数组时,它使用该元素的值为数组上的每个元素调用numpy.random.normal均值并返回一个数组:
In [9]: xx = numpy.array([1,10,100,1000]) In [10]: numpy.random.normal(xx) Out[10]: array([ 9.45865328e-01,1.11542264e+01,9.88601302e+01,1.00120448e+03])
似乎它使用默认值1.0作为比例.你可以覆盖这个:
In [12]: numpy.random.normal(xx,10) Out[12]: array([ 8.92500743,-5.66508088,97.33440273,1003.37940455]) In [13]: numpy.random.normal(xx,100) Out[13]: array([ -75.13092966,-47.0841671,154.12913986,816.3126146 ])