2 使用NumPy和SciPy进行数值分析
2.1 基本概念
1 from numpy importarray2 from numpy.random importnormal, randint3 #使用List来创造一组数据
4 data = [1, 2, 3]5 #使用ndarray来创造一组数据
6 data = array([1, 2, 3])7 #创造一组服从正态分布的定量数据
8 data = normal(0, 10, size=10)9 #创造一组服从均匀分布的定性数据
10 data = randint(0, 10, size=10)
2.2 中心位置(均值、中位数、众数)
数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观地选择。数据的中心位置可分为均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。
对于定量数据(Data)来说,均值是总和除以总量(N),中位数是数值大小位于中间(奇偶总量处理不同)的值:
均值相对中位数来说,包含的信息量更大,但是容易受异常的影响。使用NumPy计算均值与中位数:
1 from numpy importmean, median2
3 #计算均值
4 mean(data)5 #计算中位数
6 median(data)
对于定性数据来说,众数是出现次数最多的值,使用SciPy计算众数:
1 from scipy.stats importmode2
3 #计算众数
4 mode(data)
2.3 发散程度(极差、方差、标准差、变异系数)
对数据的中心位置有所了解以后,一般我们会想要知道数据以中心位置为标准有多发散。如果以中心位置来预测新数据,那么发散程度决定了预测的准确性。数据的发散程度可用极差(PTP)、方差(Variance)、标准差(STD)、变异系数(CV)来衡量,它们的计算方法如下:
极差是只考虑了最大值和最小值的发散程度指标,相对来说,方差包含了更多的信息,标准差基于方差但是与原始数据同量级,变异系数基于标准差但是进行了无量纲处理。使用NumPy计算极差、方差、标准差和变异系数:
1 from numpy importmean, ptp, var, std2
3 #极差
4 ptp(data)5 #方差
6 var(data)7 #标准差
8 std(data)9 #变异系数
10 mean(data) / std(data)
2.4 偏差程度(z-分数)
之前提到均值容易受异常值影响,那么如何衡量偏差,偏差到多少算异常是两个必须要解决的问题。定义z-分数(Z-Score)为测量值距均值相差的标准差数目:
</