首先回忆一下正态分布:
在numpy中对应于:
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数的意义:
loc:float
代表概率分布的均值,在正态分布图中表示中心的位置坐标
scale:float
代表概率分布的标准差,在正态分布图中表示图形的宽度。值越大,图像越矮胖,值越小,图像越高瘦。
size:int or tuple of ints
代表输出的shape,默认为None,只输出一个值
在我们熟悉的正态分布中,其等价于标准正太分布(μ=0, σ=1)。
接下来是关于np.clip()截取函数的理解:
np.numpy(a,a_min,a_max,out=None)
将数组a中的所有数限定在范围[a_min,a_max],其中小于a_min的数,将变为a_min,大于a_max的值,将变为a_max。
参数含义:
a:代表要截取的数组
a_min:代表截取的下限,可以为数组,代表对应位置元素的截取下限
a_max:代表截取的上限,可以为数组,代表对应位置元素的截取上限
out:可选项,表示将强制截取后的结果放到这个数组中,但out中数组的shape必须和a的shape相同。
这里请注意,进行强制截取后,a中数据并未发生变化,只是获得了一个临时的数组。若想讲a变为,截取后的结果,
可以将out设置为a,或者将结果赋值给a。
例子:
>>> a = np.arange(10)
>>> np.clip(a, 1, 8)
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
>>> a #a的值并未发生变化
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.clip(a, 3, 6, out=a) #将截取后的结果赋值给a
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8) #a_min也可以为数组,截取下限分别为数组元素,上限都为8
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])