1.生成数据
import numpy as np
import pandas as pd
from scipy import stats
form numpy.random import normal, randint
# 使用list 来创造一组数据
data1 = [1, 2, 3]
# 使用ndarray 来创造一组数据
data2 = np,ndarray([1, 2, 3])
# 使用series来创造一组数据
data3 = pd.Series([1, 2, 3])
# 创造一组正太分布的数值型数据
data4 = normal(0, 1, size = 10)
# 创造一组均匀分布的分类数据
data5 = randint(0, 10, size = 20)
2. 集中趋势
2.1 均值
# numpy 实现
np.mean(data4)
2.2 中位数
# numpy 实现
np.median(data5)
2.3 众数
# numpy 实现
counts = np.bincount(data5)
mode_val = np.argmax(counts)
# scipy 实现
print(stats.mode(data5)[0][0])
3. 离散程度
3.1 极差
# numpy 实现
np.ptp(data4)
3.2 方差
# numpy 实现
np.var(data4)
3.3 标准差
# numpy 实现
np.std(data4)
3.4 变异系数
# numpy 实现
np.std(data4) / np.mean(data4)
4. 偏差程度
z-分数
# 计算data4数据中第1个值的Z-分数
print((data4[0] - np.mean(data4)) / np.std(data4))
# array一组数同时进行计算Z-分数
(data4 - np.mean(data4)) / np.std(data4)
# 求出data3整列数据的Z-分数
data3_zscore = (data3 - np.mean(data3)) / np.std(data3)
5. 相关程度
5.1 协方差
# numpy 实现
data = np.array([data4, data5])
np.cov(data, bias = 1)
5.2 相关系数
# numpy 实现
data = np.array([data4, data5])
np.corrcoef(data)
6.pandas 表格概括性统计描述
# 生成数据
table_df = pd. DataFrame({
'收入' : [np.nan, 10000, 20000, 9000, 14000],
'性别' : [ '男', '男', '女', '男', '男'],
'年龄' : [23, 29, 24, 27, 29],
'职业' : ['审计', ‘数据分析', '公务员', '法务', '产品经理' ]
})
# 查看表格的概括性统计描述 (默认只有数值型)
table_df.describe()
# 查看表格的所有列概括性描述
table_df.describe(include = 'all')
# 查看类别变量列的描述信息
table_df.describe(include = 'object')
# 查看各列数据类型
table_df.dtypes