您的位置:

Python统计分析

一、基本数据统计分析

Python提供了多种数据处理和分析的工具,如numpy、pandas等。numpy提供了向量和矩阵的相关处理函数,pandas则封装了更加高级的数据处理和统计分析功能。例如,我们可以使用numpy进行基本的数组操作,如计算数组中的均值、中位数、方差等。

import numpy as np

# 创建一个长度为10的一维数组
arr = np.random.randn(10)
print(arr)

# 计算数组的均值、中位数和标准差
print(np.mean(arr))
print(np.median(arr))
print(np.std(arr))

而pandas则更加适合处理结构化的表格数据,可以轻松地进行数据清洗、排序、切片等操作。例如,我们可以读取一个csv文件并进行一些基本的数据统计分析操作。

import pandas as pd

# 读取csv文件
df = pd.read_csv('data.csv')

# 输出前5行数据
print(df.head())

# 统计每列的均值、标准差、最小值、最大值等
print(df.describe())

二、数据可视化分析

数据可视化分析是数据分析中非常重要的一部分,因为它可以将数据以更加直观、形象的方式呈现出来。Python提供了很多强大的数据可视化工具,如matplotlib、seaborn等。例如,我们可以使用matplotlib绘制一些简单的图表。

import matplotlib.pyplot as plt
import numpy as np

# 创建一个长度为50的一维数组
x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)

# 绘制正弦函数的图像
plt.plot(x, y)

# 设置标题和轴标签
plt.title('Sin(x)')
plt.xlabel('x')
plt.ylabel('y')

# 显示图像
plt.show()

而seaborn则提供了更加高级的数据可视化功能,如pairplot、heatmap等。例如,我们可以使用seaborn绘制一个简单的pairplot。

import seaborn as sns
import pandas as pd

# 读取iris数据集
iris = sns.load_dataset('iris')

# 绘制pairplot
sns.pairplot(iris, hue='species')

# 显示图像
plt.show()

三、统计分析模型

Python不仅提供了基本的数据统计分析工具和数据可视化工具,还提供了很多强大的统计分析模型。例如,我们可以使用scipy进行一些常用的统计分析模型,如线性回归、t检验等。

from scipy import stats

# 生成一些随机数据
x = np.arange(10)
y = np.array([3, 4, 7, 9, 12, 15, 18, 21, 22, 24])

# 进行线性回归分析
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
print('斜率:', slope)
print('截距:', intercept)
print('相关系数:', r_value)
print('p值:', p_value)

而statsmodels则提供了更加全面的统计分析模型,如OLS、ARIMA等。例如,我们可以使用statsmodels进行一些基本的时间序列分析。

import statsmodels.api as sm
import pandas as pd

# 读取AirPassengers数据集
airpassengers = sm.datasets.get_rdataset('AirPassengers').data

# 将“Month”列设置为时间索引
airpassengers['Month'] = pd.to_datetime(airpassengers['Month'], format='%Y-%m')
airpassengers.set_index('Month', inplace=True)

# 绘制时间序列图
airpassengers.plot()

# 显示图像
plt.show()

# 进行时间序列分析
res = sm.tsa.ARIMA(airpassengers, (2,1,1)).fit()
print(res.summary())