精华内容
参与话题
问答
  • 数据标准化/归一化normalization

    万次阅读 多人点赞 2016-08-19 09:42:40
    这里主要讲连续型特征归一化的常用方法。 连续型特征还有一种处理方式是,先分桶/分箱(如等频/等距的分)[待写]进行离散化后再使用离散数据的处理方法。 离散数据处理参考[数据预处理:独热编码(One-Hot ...

    http://blog.csdn.net/pipisorry/article/details/52247379

    这里主要讲连续型特征归一化的常用方法。

    连续型特征还有一种处理方式是,先分桶/分箱(如等频/等距的分)[待写]进行离散化后再使用离散数据的处理方法。

    离散数据处理参考[数据预处理:独热编码(One-Hot Encoding)]。

    基础知识参考:

    [均值、方差与协方差矩阵]

    [矩阵论:向量范数和矩阵范数]

    数据的标准化(normalization)和归一化

        数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

        目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。

    其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

    归一化的目标

    1 把数变为(0,1)之间的小数
            主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
    2 把有量纲表达式变为无量纲表达式
            归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。
    另外,微波之中也就是电路分析、信号系统、电磁波传输等,有很多运算都可以如此处理,既保证了运算的便捷,又能凸现出物理量的本质含义。

    归一化后有两个好处

    1. 提升模型的收敛速度

    如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快(理解:也就是步长走多走少方向总是对的,不会走偏)


    2.提升模型的精度

    归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。

        在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。

        在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。

    从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

    3. 深度学习中数据归一化可以防止模型梯度爆炸。

    数据需要归一化的机器学习算法

    需要归一化的模型:

            有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM(距离分界面远的也拉近了,支持向量变多?)。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。
            有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression(因为θ的大小本来就自学习出不同的feature的重要性吧?)。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛(模型结果不精确)。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

            有些模型/优化方法的效果会强烈地依赖于特征是否归一化,如LogisticReg,SVM,NeuralNetwork,SGD,PCA降维[PCA将原来高维的数据投影到某个低维的空间上并使得其方差尽量大。如果数据其中某一特征数值特别大,那么它在整个误差计算的比重上就很大,那么可以想象在投影到低维空间之后,为了使低秩分解逼近原数据,整个投影会去努力逼近最大的那一个特征,而忽略数值比较小的特征,这很可能导致了大量的信息缺失。此外,从计算的角度讲,因为PCA通常是数值近似分解,而非求特征值、奇异值得到解析解,所以当我们使用梯度下降等算法进行PCA的时候,归一化有利于梯度下降收敛]等。

    不需要归一化的模型:

        (0/1取值的特征通常不需要归一化,归一化会破坏它的稀疏性。)

        有些模型则不受归一化影响,如DecisionTree。

        ICA好像不需要归一化(因为独立成分如果归一化了就不独立了?)。

        基于平方损失的最小二乘法OLS不需要归一化。

    [线性回归与特征归一化(feature scaling)]

    皮皮blog

     

     

    常见的数据归一化方法

    最常用的是 min-max标准化 和 z-score 标准化。

    min-max标准化(Min-max normalization)/0-1标准化(0-1 normalization)/线性函数归一化/离差标准化

    是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:

    其中max为样本数据的最大值,min为样本数据的最小值。

    def Normalization(x):
        return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]

    如果想要将数据映射到[-1,1],则将公式换成:

    x* = x* * 2 -1

    或者进行一个近似

    x* = (x - x_mean)/(x_max - x_min), x_mean表示数据的均值。

    def Normalization2(x):
        return [(float(i)-np.mean(x))/(max(x)-min(x)) for i in x]

    这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

    ps: 将数据归一化到[a,b]区间范围的方法:

    (1)首先找到原本样本数据X的最小值Min及最大值Max
    (2)计算系数:k=(b-a)/(Max-Min)
    (3)得到归一化到[a,b]区间的数据:Y=a+k(X-Min)  或者 Y=b+k(X-Max)

    即一个线性变换,在坐标上就是求直线方程,先求出系数,代入一个点对应的值(x的最大/最小就对应y的最大/最小)就ok了。

    z-score 标准化(zero-mean normalization)

    最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法,spss默认的标准化方法就是z-score标准化。

    也叫标准差标准化,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。

    经过处理的数据符合标准正态分布,即均值为0,标准差为1,注意,一般来说z-score不是归一化,而是标准化,归一化只是标准化的一种[lz]。

    其转化函数为:

    x* = (x - μ ) / σ

    其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

    z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。该种标准化方式要求原始数据的分布可以近似为高斯分布,否则效果会变得很糟糕。

    标准化的公式很简单,步骤如下

      1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
      2.进行标准化处理:
      zij=(xij-xi)/si
      其中:zij为标准化后的变量值;xij为实际变量值。
      3.将逆指标前的正负号对调。
      标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

    def z_score(x, axis):
        x = np.array(x).astype(float)
        xr = np.rollaxis(x, axis=axis)
        xr -= np.mean(x, axis=axis)
        xr /= np.std(x, axis=axis)
        # print(x)
        return x

    为什么z-score 标准化后的数据标准差为1?

    x-μ只改变均值,标准差不变,所以均值变为0

    (x-μ)/σ只会使标准差除以σ倍,所以标准差变为1

    这两种最常用方法使用场景:

    1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

    2、在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
    原因是使用第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。而在第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
    [再谈机器学习中的归一化方法(Normalization Method) ]

    皮皮blog

    log函数转换

    通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:

    看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

    atan函数转换

    用反正切函数也可以实现数据的归一化。

    使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上,而并非所有数据标准化的结果都映射到[0,1]区间上。

    Decimal scaling小数定标标准化

    这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。

    将属性A的原始值x使用decimal scaling标准化到x'的计算方法是:
    x'=x/(10^j)
    其中,j是满足条件的最小整数。
    例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用每个值除以1000(即,j=3),这样,-986被规范化为-0.986。
    注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

    Logistic/Softmax变换

    [Sigmod/Softmax变换 ]

    模糊量化模式

    新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*(X-(极大值-极小值)/2) ] X为原数据

    皮皮blog

     

    数据标准化/归一化的编程实现

    1 python库实现和调用

    [Scikit-learn:数据预处理Preprocessing data ]

    2 pandas dataframe实现标准化

    [pandas小记:pandas数据规整化-正则化、分组合并及重塑]

    两者的区别在于:df_norm = (df - df.mean()) / (df.std())会保留nan值,而preprocessing.scale(X)会直接报错:ValueError: Input contains NaN, infinity or a value too large for dtype('float64')。

    对于dense数据,建议先填充再标准化,否则需要标准化后再通过最小值来填充。

    from: http://blog.csdn.net/pipisorry/article/details/52247379

    ref:

     

    展开全文
  • python 计算均值、方差、标准差 Numpy,Pandas

    万次阅读 多人点赞 2019-10-23 22:58:25
    Numpy 计算均值、方差、标准差2. Pandas 计算均值、方差、标准差 Python 中的 numpy 包 和 pandas 包都能够计算均值、方差等,本文总结一下它们的用法。 1. Numpy 计算均值、方差、标准差 一般的均值可以用 numpy ...


    Python 中的 numpy 包 和 pandas 包都能够计算均值、方差等,本文总结一下它们的用法。

    1. Numpy 计算均值、方差、标准差

    一般的均值可以用 numpy 中的 mean 方法求得:

    >>> import numpy as np
    >>> a = [5, 6, 16, 9]
    >>> np.mean(a)
    9.0
    

    numpy 中的 average 方法不仅能求得简单平均数,也可以求出加权平均数。average 里面可以跟一个 weights 参数,里面是一个权数的数组,例如:

    >>> np.average(a)
    >>> 9.0
    >>> np.average(a, weights = [1, 2, 1, 1])
    >>> 8.4
    

    计算方差时,可以利用 numpy 中的 var 函数,默认是总体方差(计算时除以样本数 N),若需要得到样本方差(计算时除以 N - 1),需要跟参数 ddo f= 1,例如

    >>> import pnumpy as np
    >>> a = [5, 6, 16, 9]
    >>> np.var(a) # 计算总体方差
    18.5
    
    >>> np.var(a, ddof = 1) # 计算样本方差
    24.666666666666668
    
    >>> b = [[4, 5], [6, 7]]
    >>> b
    [[4, 5], [6, 7]]
    
    >>> np.var(b) # 计算矩阵所有元素的方差
    1.25
    
    >>> np.var(b, axis = 0) # 计算矩阵每一列的方差
    array([1., 1.])
    
    >>> np.var(b, axis = 1) # 计算矩阵每一行的方差
    array([0.25, 0.25])
    

    计算标准差时,可以利用 numpy 中的 std 函数,使用方法与 var 函数很像,默认是总体标准差,若需要得到样本标准差,需要跟参数 ddof =1,

    >>> import pnumpy as np
    >>> a = [5, 6, 16, 9]
    >>> np.std(a) # 计算总体标准差
    4.301162633521313
    
    >>> np.std(a, ddof = 1 ) # 计算样本标准差
    4.96655480858378
    
    >>> np.std(b) # 计算矩阵所有元素的标准差
    1.118033988749895
    
    >>> np.std(b, axis = 0) # 计算矩阵每一列的标准差
    array([1., 1.])
    
    >>> np.std(b, axis = 1) # 计算矩阵每一列的标准差
    array([0.5, 0.5])
    

    2. Pandas 计算均值、方差、标准差

    对于 pandas ,也可以用里面的 mean 函数可以求得所有行或所有列的平均数,例如:

    >>> import pandas as pd
    >>> df = pd.DataFrame(np.array([[85, 68, 90], [82, 63, 88], [84, 90, 78]]), columns=['统计学', '高数', '英语'], index=['张三', '李四', '王五'])
    >>> df
    统计学  高数  英语
    张三   85  68  90
    李四   82  63  88
    王五   84  90  78
    
    >>> df.mean() # 显示每一列的平均数
    
    统计学    83.666667
    高数     73.666667
    英语     85.333333
    dtype: float64
    
    >>> df.mean(axis = 1) # 显示每一行的平均数
    张三    81.000000
    李四    77.666667
    王五    84.000000
    dtype: float64
    

    若要得到某一行或某一列的平均值,则可以使用 iloc 选取改行或该列数据,后面跟 mean 函数就能得到,例如:

    >>> df
        统计学  高数  英语
    张三   85  68  90
    李四   82  63  88
    王五   84  90  78
    
    >>> df.iloc[0, :].mean()  # 得到第 1 行的平均值
    81.0
    
    >>> df.iloc[:, 2].mean() # 得到第 3 列的平均值
    85.33333333333333
    

    pandas 中的 var 函数可以得到样本方差(注意不是总体方差),std 函数可以得到样本标准差,若要得到某一行或某一列的方差,则也可用 iloc 选取某行或某列,后面再跟 var 函数或 std 函数即可,例如:

    >>> df.var() # 显示每一列的方差
    统计学      2.333333
    高数     206.333333
    英语      41.333333
    dtype: float64
    
    >>> df.var(axis = 1) # 显示每一行的方差
    张三    133.000000
    李四    170.333333
    王五     36.000000
    dtype: float64
    
    >>> df.std() # 显示每一列的标准差
    统计学     1.527525
    高数     14.364308
    英语      6.429101
    dtype: float64
    
    >>> df.std(axis = 1) # 显示每一行的标准差
    张三    11.532563
    李四    13.051181
    王五     6.000000
    dtype: float64
    
    >>> df.iloc[0, :].std() # 显示第 1 行的标准差
    11.532562594670797
    
    >>> df.iloc[:, 2].std() # 显示第 3 列的标准差
    6.429100507328636
    
    展开全文
  • 上一节我们利用SPSS中的数据标准化方法及主成分分析法,得出了“解释的总方差”和“成分矩阵”(如下图) 接下来我们将利用主成分分析得出的数据计算指标权重 2、权重计算 (1)输入数据 将主成分分析中得出的“成分...

    三、权重计算

    1、上节回顾

    上一节我们利用SPSS中的数据标准化方法及主成分分析法,得出了“解释的总方差”和“成分矩阵”(如下图)在这里插入图片描述
    接下来我们将利用主成分分析得出的数据计算指标权重

    2、权重计算

    (1)输入数据
    将主成分分析中得出的“成分矩阵”及特征根复制的Excel中:
    在这里插入图片描述
    对应主成分分析的数据为:
    在这里插入图片描述
    (2)计算线性组合中的系数
    公式为:标准化数/对应主成分特征根的平方根.。直接上图。
    在这里插入图片描述
    在这里插入图片描述
    为方便描述,线性组合中的系数使用Excel中的标号,如“工业废水排放量”对应的两个系数分别为C8和D8。

    (3)计算综合得分模型中的系数
    公式为:(第一主成分方差x100xC8+第二个主成分方差x100xD8)/(第一主成分方差+第二主成分方差)
    注:建议先将方差x100再进行计算
    如图:蓝色和紫色为分别对应相乘的线性组合中的系数及主成分方差
    在这里插入图片描述
    其中主成分方差的数据为:
    在这里插入图片描述
    (4)权重计算(归一化)
    现在到了最后一步,计算权重,也即标准化,将所有指标进行归一化处理,使其权重综合为1。
    公式为:A指标权重=A指标综合得分模型系数/五指标综合得分模型之和。
    如图:
    在这里插入图片描述
    到这里,我们就得出了最终的结果。
    注:蓝色框中的数据是相同的,笔者这样做是为了美观及防止出错。
    (5)完整示范
    为方便大家使用Excel进行权重计算,在这里将笔者自己完整的Excel表格分享给大家:
    在这里插入图片描述
    (6)权重计算出负值的问题
    如果有朋友最终计算的结果出现了负值,说明不适用SPSS中的数据标准化处理,可以改用极差法重新标准化数据。下面介绍极差法,并用Excel进行实现。

    四、极差法标准化

    1、公式
    公式为:
    在这里插入图片描述
    如何区分指标时正向还是负向?如笔者的五项指标中吗,废水、废气、固体废弃物越多对环境来说越糟糕,因此为负向指标;绿地面积,建成区绿化率值越大对环境来说越好,因此为正向指标。

    2、使用Excel实现

    由于公式直接输入比较困难,因此笔者建议先计算最小、最大值,再计算最大值与最小值的差,最后计算得出结果。
    (1)计算最小值。如图:
    在这里插入图片描述
    (2)计算最大值
    在这里插入图片描述
    (3)计算【max-min】
    在这里插入图片描述
    (4)计算最终的标准化数值
    注意:这里要区分正负向指标
    首先是正向指标,如图:
    在这里插入图片描述
    然后是负向指标:
    在这里插入图片描述
    (5)0值的处理
    最终计算的可能出现0值,这时候为每一个0值加上0.01即可(如下图)。
    (6)完整示范
    在这里插入图片描述
    到此,极差法标注化处理就结束了。前面利用SPSS进行标准化得出权重为负值的朋友可以用极差法对数据进行重新标准化,再重新利用SPSS进行主成分分析,然后计算权重。

    下一节,我们将介绍耦合度及耦合协调度的计算方法,并使用Excel进行实现,实际计算出所有数值。

    展开全文
  • C标准:C90、C99、C11

    万次阅读 多人点赞 2014-08-15 16:37:40
    C语言原来是没有统一的标准的,第一个标准是90

     C语言原来是没有统一的标准的,第一个标准是90左右确定的,内容较以前有些改进:

       1、增加了真正的标准库;

       2、新的预处理命令与特性;

       3、函数原型允许在函数申明中;

       4、指定参数类型一些新的关键字,包括 constvolatilesigned

       5、宽字符、宽字符串与多字节字符;

       6、对约定规则、声明和类型检查的许多小改动与澄清;


    后来到了99年就有了新的修正:

       1、增加了对编译器的限制,比如源程序每行要求至少支持到 4095 字节,变量名函数名的要求支持到 63 字节(extern 要求支持到 31)

       2、增强了预处理功能。例如:支持取可变参数 #define Macro(...) __VA_ARGS__;

                                                             使用的时候,允许省略参数,被省略的参数会被扩展成空串;

                                                             支持 // 开头的单行注释(这个特性实际上在C89的很多编译器上已经被支持了);

        3、增加了新关键字 restrict, inline, _Complex, _Imaginary, _Bool;支持 long long, long double _Complex, float _Complex 等类型;

        4、支持不定长的数组,即数组长度可以在运行时决定,比如利用变量作为数组长度。声明时使用 int a[var] 的形式。不过考虑到效率和实现,不定长数组不能用在全局,或structunion 里。
        5、变量声名不必放在语句块的开头,,for 语句提倡写成 for(int i=0;i<100;++i) 的形式,即i 只在for 语句块内部有效。

        6、允许采用(type_name){xx,xx,xx} 类似于 C++ 的构造函数的形式构造匿名的结构体。

        7、初始化结构的时候允许对特定的元素赋值,形式为:

                          struct test{int a[3],b;} foo[] = { [0].a = {1}, [1].a = 2 }

                         struct test{int a, b, c, d;} foo=  { .a=1, .c=3,4, .b=5 };  // 3,4 是对 .c,.d 赋值的

         8、格式化字符串中,利用 \u 支持 unicode 的字符。

         9、支持 16 进制的浮点数的描述;printf scanf 的格式化串增加了对 long long int 类型的支持;浮点数的内部数据描述支持了新标准,可以使用 #pragma 编译器指令指定。

         10、除了已有的 __line__ __file__ 以外,增加了 __func__ 得到当前的函数名。

         11、允许编译器化简非常数的表达式;取消了函数返回类型默认为 int 的规定

         12、修改了 / % 处理负数时的定义,这样可以给出明确的结果,例如在C89中-22 / 7 = -3, -22 % 7 = -1,也可以-22 / 7= 4, -22 % 7 = 6。 而C99中明确为-22 / 7 = -3, -22 % 7 = -1,只有一种结果。

         13、允许 struct 定义的最后一个数组不指定其长度,写做 [](flexible array member)。

      14、const const int i 将被当作const int i 处理;输入输出对宽字符以及长整数等做了相应的支持。

         15、增加和修改了一些标准头文件,比如定义 bool 的 <stdbool.h> ,定义一些标准长度的 int 的 <inttypes.h> ,定义复数的 <complex.h> ,定义宽字符的 <wctype.h> ,类似于泛型的数学函数 <tgmath.h>, 浮点数相关的 <fenv.h>。 在<stdarg.h> 增加了 va_copy 用于复制 ... 的参数。 里增加了 struct tmx ,对 struct tm 做了扩展。


    在11年的时候ISO正式发布了新的C语言的新标准C11:

         1、对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符, aligned_alloc函数以及<stdalign.h>头文件

         2、_Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。

         3、_Generic 关键字。

         4、多线程(Multithreading)支持,包括:

                      _Thread_local存储类型标识符,<threads.h>头文件,里面包含了线程的创建和管理函数。

                     _Atomic类型修饰符和<stdatomic.h>头文件。

          5、增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>.

          6、删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。

          7、增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s()

          8、匿名结构体/联合体支持。这个在gcc早已存在,C11将其引入标准。

          9、静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。

          10、新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。

          11、新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。


    C90和C99容易弄混,这也是现在用的最多的两个版本,至于C11的话基本没见人用,反正有了也总结一下 。


    展开全文
  • Python求均值,方差,标准

    万次阅读 多人点赞 2018-09-28 00:15:46
    import numpy as np arr = [1,2,3,4,5,6] #求均值 arr_mean = np.mean(arr) #求方差 arr_var = np.var(arr) #求标准差 arr_std = np.std(arr,ddof=1) print("平均值为:%f"...标准差为:%f...
  • STL标准模板库--编程初步视频精讲

    万人学习 2017-04-05 09:05:52
    STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库中,是ANSI/ISO C++标准中新的也是极具革命性的一部分。 STL将数据结构和算法的分离,使得STL变...
  • DirectX修复工具 V3.3标准 绿色版

    万次下载 热门讨论 2015-05-03 09:43:18
    因此,当您使用标准版数据包时,程序将进行标准修复;当您使用增强版的数据包时,程序将进行增强修复;当数据包不全或没有数据包(即只有DirectX Repair.exe程序)时,程序将进行在线修复。在线修复、离线修复可自由...
  • 国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养的建议。 输入格式: 输入在第一行给出一个...
  • C++栈和队列标准库函数

    万次阅读 多人点赞 2016-10-08 19:18:12
    C++栈和队列函数的库函数的使用方法, c++栈和队列的函数
  • 方差、协方差、标准差(标准偏差/均方差)、均方误差、均方根误差(标准误差)、均方根值 本文由博主经过查阅网上资料整理总结后编写,如存在错误或不恰当之处请留言以便更正,内容仅供大家参考学习。 方差...
  • 2018.1.19 HAL库详解见STM32之HAL库...到目前为止,有标准外设库(STD库)、HAL库、LL库 三种。前两者都是常用的库,后面的LL库是ST最近才添加,随HAL源码包一起提供,目前支持的芯片也偏少。各库如下所示:   其
  • 国家标准软件开发文档模板

    千次下载 热门讨论 2009-12-02 09:51:47
    国家标准软件开发文档模板,包括:操作手册(GB8567——88)、测试分析报告(GB8567——88)、测试计划(GB8567——88)、概要设计说明书(GB8567——88)、开发进度月报(GB8567——88)、可行性研究报告(GB8567...
  • 入手了一块STM32F107VCT6开发板,初学STM32开发,配置开发环境时,有个很重要的库:STM32标准外设库(STM32F10x>http://www.st.com/web/en/home.html 看到顶部的菜单了吗?选择“Support”。 2. 在左侧的菜单中...
  • 标准正态分布表(scipy.stats)

    万次阅读 多人点赞 2018-05-20 12:31:52
    0. 标准正态分布表与常用值 Z-score 是非标准正态分布标准化后的 x即 z=x−μσz=x−μσz = \frac{x-\mu}{\sigma} 表头的横向表示小数点后第二位,表头的纵向则为整数部分以及小数点后第一位;两者联合作为...
  • 标准输入,标准输出和标准错误

    千次阅读 2019-03-19 17:48:04
    当我们使用文件描述符进行操作时,需要操作标准输入、标准输出、标准错误,可以包含如下头文件: #include <unistd.h> 这个头文件中定义了标准设备: /* Standard file descriptors. */ #define STDIN_FILENO...
  • 企业微信视频教程(Java标准版)

    千人学习 2017-06-06 10:24:54
    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班...
  • 普通正态分布如何转换到标准正态分布

    万次阅读 多人点赞 2019-01-13 22:32:16
    1.普通正态分布转换标准正态分布公式 我们知道正态分布是由两个参数μ\muμ与σ\sigmaσ确定的。对于任意一个服从N(μ,σ2)N(\mu, \sigma^2)N(μ,σ2)分布的随机变量XXX,经过下面的变换以后都可以转化为μ=0,σ=1\...
  • C++标准库和标准模板库

    万次阅读 多人点赞 2012-05-10 08:54:10
    C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试...
  • POSIX 标准

    千次阅读 2016-12-10 11:17:27
    在20世纪70~80年代,AT&T虽对UNIX的实际源代码进行了版权保护,但却鼓励在系统的接口和语言基础上进行标准化工作。例如,AT&T发布了SVID(System V Interface Definition,系统V接口定义),这成为了POSIX及其后续...
  • 软件开发国家标准GB8567-88与GB8567-2006免费下载(整理)

    千次下载 热门讨论 2008-05-05 15:34:46
    软件开发国家标准GB8567-88与GB8567-2006。0资源分。 4.19MB(4,401,376字节),内容如下: D:\CSDN │ GB8567-2006计算机软件文档编制规范.pdf │ └─软件设计文档(国标) └─软件设计文档...
  • php 解析非标准json、非规范json

    万次阅读 2020-07-06 16:43:29
    // 解析非标准json,注意暂时未处理 {str:['aaaa','bbb']} $json = preg_replace ( "/\s(?=\s)/","\\1", $json );// 多个空格只留一个 $json = preg_replace( "/([\{\}\,]+)\s?'?\s?(\w*?)\s?'?\s?:\s?/", '\\1"\\2":...
  • 1,标准差的计算 2,标准分数z-score

    万次阅读 2017-01-26 20:53:48
    1,标准差的计算 2,标准分数z-score 摘自网络 “标准差”(standard deviation)也称“标准偏差”,它可以通过计算方差的算术平方根来求得。标准差表征了各数据偏离平均值的距离,它反映出一个数据集的离散程度。 ...
  • 官网下载地址:http://www.miit.gov.cn/n1146285/n1146352/n3054355/n3057278/n3057286/c3592332/content.html ... (一)农、林、牧、渔业。营业收入20000万元以下的为中小微型企业。其中, 营业收入50...
  • 常用来作为机器学习模型预测结果衡量的标准。 MSE(Mean Square Error)均方误差 MSE是真实值与预测值的差值的平方然后求和平均。 通过平方的形式便于求导,所以常被用作线性回归的损失函数。 MAE(Mean...
  • 数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果。为了消除指标(特征)之间的量纲影响,数据集需要进行数据标准化处理,以解决...
  • 标准误/标准误和标准差的区别

    千次阅读 2019-10-25 13:40:00
    标准误概念:即样本均数的标准差,可用于衡量抽样误差的大小。 通常σ未知,用s(标准差)来估计,计算标准误: ----> 通过增加样本含量n来降低抽样误差。 标准误的特点: 当样本例数n一定时,标准误与...
  • c 标准和c++标准

    万次阅读 多人点赞 2018-08-29 10:16:49
    C语言的发展阶段 C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming...
  • 标准误差和标准偏差

    万次阅读 2019-08-13 15:39:28
    标准偏差和标准误差是统计学中的两个变异性估计量。两者只有一字之差,但是所表示的估计含义却很不同。 首先,从英文名字来讲,标准偏差是standard deviation,deviation有“离差”的意思,标准偏差表征的是数据的...
  • STM32固件库(标准外设库)使用手册

    千次阅读 多人点赞 2019-04-24 15:55:00
    忘掉库函数的时候想起来还有库函数使用手册。STM32F1固件库使用手册的中文翻译版下载 链接:https://pan.baidu.com/s/1I24VFBXW-fVHF3FcHoV3XA 提取码:gti2

空空如也

1 2 3 4 5 ... 20
收藏数 1,106,167
精华内容 442,466
热门标签
关键字:

标准