python随机数组,高斯噪声,多项式函数
2014-03-12 10:47
330 查看
在前面的numpy的学习中忽略了这几个重要的知识点,导致今天做作业异常的艰难。现在十分必要将它记录下来。
1.np.random.*必须的是一个非常强的命令啊。不仅可以产生随机数(包括随机整数,实数;一维的,二维的等等),还可以产生正态分布的数(既可以用它来产生扰动或者是高斯噪声)。
(1)numpy.random.rand(d0, d1, ..., dn)
shape为:(d0, d1, ..., dn)
(2)numpy.random.normal(loc=0.0, scale=1.0, size=None)loc
均值,scale 标准差,size大小。
Display the histogram of the samples, along with the probability density function:
(3)numpy.random.uniform(low=0.0, high=1.0, size=1)
均匀分布一样的。
(4)多项式函数
p=np.poly1d(a),其中,a是多项式由高次到0次方的系数。
>>> a
array([ 0.97712037, -1.39644265, -0.96801519, 0.97348607, 0.4140714 ])
>>> p=np.poly1d(a)
>>> type(p)
<class 'numpy.lib.polynomial.poly1d'>
还有一个可以用来做多项式拟合的函数:np.polyfit()
常用总结:
1,np.random.random(10)随机生成一个10个值(值的大小为0~1)的一维数组;
2,np.random.rand(10,10)随机生成一个10*10(值的大小为0~1)的二维数组(还可以是任意维数组);
3 , np.random.randint(1,10,(4,5))随机生成一个4*5(值的大小为1~10)的数组(还可以为某个范围内的任意维数组);用
b = arange(20).reshape(4,5) 也可以达到这个效果。
4,np.random.randn(2,3)从标准正态分布中产生一个2*3的数组。
5,np.random.normal(2,0.5,(2,3))产生的是一个2*3的高斯噪声点数组集合(均值为:2,标准差:0.5)。
另外补充:
1.np.arange(0,1,0.1)产生的是0,0.1~0.9这10个点,要产生0,0.1~0.9,1的话将里面的1改为1.1就可以了;
2.for i in range(10)也是0到9的十个点;
3.np.linspace(0,1,10)产生的是0,1/9,2/9~1这10个点。因为有0的存在所以是将0到10均分为9分了。若是想产生0,0.1~0.9,1的化将里面的10设置为11.
1.np.random.*必须的是一个非常强的命令啊。不仅可以产生随机数(包括随机整数,实数;一维的,二维的等等),还可以产生正态分布的数(既可以用它来产生扰动或者是高斯噪声)。
(1)numpy.random.rand(d0, d1, ..., dn)
shape为:(d0, d1, ..., dn)
(2)numpy.random.normal(loc=0.0, scale=1.0, size=None)loc
均值,scale 标准差,size大小。
>>> mu, sigma = 0, 0.1 >>> s = np.random.normal(mu, sigma, 1000)
>>> abs(mu - np.mean(s)) < 0.01 True
>>> abs(sigma - np.std(s, ddof=1)) < 0.01 True
Display the histogram of the samples, along with the probability density function:
>>> import matplotlib.pyplot as plt >>> count, bins, ignored = plt.hist(s, 30, normed=True) >>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * ... np.exp( - (bins - mu)**2 / (2 * sigma**2) ), ... linewidth=2, color='r') >>> plt.show()
(3)numpy.random.uniform(low=0.0, high=1.0, size=1)
均匀分布一样的。
(4)多项式函数
p=np.poly1d(a),其中,a是多项式由高次到0次方的系数。
>>> a
array([ 0.97712037, -1.39644265, -0.96801519, 0.97348607, 0.4140714 ])
>>> p=np.poly1d(a)
>>> type(p)
<class 'numpy.lib.polynomial.poly1d'>
还有一个可以用来做多项式拟合的函数:np.polyfit()
常用总结:
1,np.random.random(10)随机生成一个10个值(值的大小为0~1)的一维数组;
2,np.random.rand(10,10)随机生成一个10*10(值的大小为0~1)的二维数组(还可以是任意维数组);
3 , np.random.randint(1,10,(4,5))随机生成一个4*5(值的大小为1~10)的数组(还可以为某个范围内的任意维数组);用
b = arange(20).reshape(4,5) 也可以达到这个效果。
4,np.random.randn(2,3)从标准正态分布中产生一个2*3的数组。
5,np.random.normal(2,0.5,(2,3))产生的是一个2*3的高斯噪声点数组集合(均值为:2,标准差:0.5)。
另外补充:
1.np.arange(0,1,0.1)产生的是0,0.1~0.9这10个点,要产生0,0.1~0.9,1的话将里面的1改为1.1就可以了;
2.for i in range(10)也是0到9的十个点;
3.np.linspace(0,1,10)产生的是0,1/9,2/9~1这10个点。因为有0的存在所以是将0到10均分为9分了。若是想产生0,0.1~0.9,1的化将里面的10设置为11.
相关文章推荐
- python numpy.random生成随机数组
- python生成随机数组
- 随机打乱数组(包括二维数组)的顺序-python实现
- python产生随机数组
- matlab randn函数产生高斯随机噪声
- 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声
- 从数组中返回随机元素(python中的random模块的使用)
- 【python学习记录】--2--图像二值化和随机椒盐噪声
- python生成随机数组【转】
- python 随机产生多维高斯分布点
- 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声
- 随机打乱数组的顺序-python实现
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- python 用numpy生成多维随机数组
- python生成多个只含0,1元素的随机数组或列表
- Python numpy(ndarray 随机数组 常用操作 线性方程组和矩阵运算)
- Python生成随机数组的方法小结
- 用Collection.shuffle()随机打乱一个顺序数组
- js实现数组内元素随机排序
- 算法题,获取随机不重复数组