重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
std()函数就是初高中学的标准差 numpy.std()
成都网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设公司、微信开发、微信小程序开发、集团企业网站设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都阳光房等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞许!
求标准差的时候默认是除以 n 的,即是有偏的,np.std无偏样本标准差方式为加入参数 ddof = 1
有些Python小白对numpy中的常见函数不太了解,今天小编就整理出来分享给大家。
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。
数组常用函数
1.where()按条件返回数组的索引值
2.take(a,index)从数组a中按照索引index取值
3.linspace(a,b,N)返回一个在(a,b)范围内均匀分布的数组,元素个数为N个
4.a.fill()将数组的所有元素以指定的值填充
5.diff(a)返回数组a相邻元素的差值构成的数组
6.sign(a)返回数组a的每个元素的正负符号
7.piecewise(a,[condlist],[funclist])数组a根据布尔型条件condlist返回对应元素结果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改变数组维度
a.ravel(),a.flatten():将数组a展平成一维数组
a.shape=(m,n),a.reshape(m,n):将数组a转换成m*n维数组
a.transpose,a.T转置数组a
数组组合
1.hstack((a,b)),concatenate((a,b),axis=1)将数组a,b沿水平方向组合
2.vstack((a,b)),concatenate((a,b),axis=0)将数组a,b沿竖直方向组合
3.row_stack((a,b))将数组a,b按行方向组合
4.column_stack((a,b))将数组a,b按列方向组合
数组分割
1.split(a,n,axis=0),vsplit(a,n)将数组a沿垂直方向分割成n个数组
2.split(a,n,axis=1),hsplit(a,n)将数组a沿水平方向分割成n个数组
数组修剪和压缩
1.a.clip(m,n)设置数组a的范围为(m,n),数组中大于n的元素设定为n,小于m的元素设定为m
2.a.compress()返回根据给定条件筛选后的数组
数组属性
1.a.dtype数组a的数据类型
2.a.shape数组a的维度
3.a.ndim数组a的维数
4.a.size数组a所含元素的总个数
5.a.itemsize数组a的元素在内存中所占的字节数
6.a.nbytes整个数组a所占的内存空间7.a.astype(int)转换a数组的类型为int型
数组计算
1.average(a,weights=v)对数组a以权重v进行加权平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)数组a的均值、最大值、最小值、中位数、方差、标准差
3.a.prod()数组a的所有元素的乘积
4.a.cumprod()数组a的元素的累积乘积
5.cov(a,b),corrcoef(a,b)数组a和b的协方差、相关系数
6.a.diagonal()查看矩阵a对角线上的元素7.a.trace()计算矩阵a的迹,即对角线元素之和
以上就是numpy中的常见函数。更多Python学习推荐:PyThon学习网教学中心。
borderType= None)函数
此函数利用高斯滤波器平滑一张图像。该函数将源图像与指定的高斯核进行卷积。
src:输入图像
ksize:(核的宽度,核的高度),输入高斯核的尺寸,核的宽高都必须是正奇数。否则,将会从参数sigma中计算得到。
dst:输出图像,尺寸与输入图像一致。
sigmaX:高斯核在X方向上的标准差。
sigmaY:高斯核在Y方向上的标准差。默认为None,如果sigmaY=0,则它将被设置为与sigmaX相等的值。如果这两者都为0,则它们的值会从ksize中计算得到。计算公式为:
borderType:像素外推法,默认为None(参考官方文档 BorderTypes
)
在图像处理中,高斯滤波主要有两种方式:
1.窗口滑动卷积
2.傅里叶变换
在此主要利用窗口滑动卷积。其中二维高斯函数公式为:
根据上述公式,生成一个3x3的高斯核,其中最重要的参数就是标准差 ,标准差 越大,核中心的值与周围的值差距越小,曲线越平滑。标准差 越小,核中心的值与周围的值差距越大,曲线越陡峭。
从图像的角度来说,高斯核的标准差 越大,平滑效果越不明显。高斯核的标准差 越小,平滑效果越明显。
可见,标准差 越大,图像平滑程度越大
参考博客1:关于GaussianBlur函数
参考博客2:关于高斯核运算
可以用numpy模块实现:
import numpy
def cal_mean_std(sum_list_in):
# type: (list) - tuple
N = sum_list_in.__len__()
narray = numpy.array(sum_list_in)
sum = narray.sum()
mean = sum / N
narray_dev = narray - mean
narray_dev = narray_dev * narray_dev
sum_dev = narray_dev.sum()
DEV = float(sum_dev) / float(N)
STDEV = numpy.math.sqrt(DEV)
print "mean:", mean, "; DEV:", DEV, "; STDEV:", STDEV
return mean, DEV, STDEV
均值为mean,方差为DEV,标准差是STDEV
传入数据是一个list:sum_list_in
def fangcha(): a=float(raw_input("请输入a:")) b=float(raw_input("请输入b:")) c=float(raw_input("请输入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均数是:%f方差是:%f" %(d,e) fangcha() Python2.7可用