numpy数据统计分析技巧分享
发布时间: 2024-05-03 04:37:12 阅读量: 90 订阅数: 45
numpy统计分析数据
![numpy数据统计分析技巧分享](https://img-blog.csdnimg.cn/img_convert/31a81f8f95e7bc5edfb98a79c498a042.png)
# 1. NumPy简介和基本操作
NumPy(Numerical Python)是一个强大的Python库,用于处理多维数组和矩阵。它提供了广泛的数学和统计函数,使数据分析和科学计算变得更加容易。
NumPy中的基本操作包括:
- 创建和操作数组:使用`numpy.array()`函数创建数组,并使用`shape`和`dtype`属性获取其形状和数据类型。
- 数学运算:NumPy支持各种数学运算,如加法、减法、乘法和除法,以及三角函数和指数函数。
- 索引和切片:可以使用索引和切片来访问和修改数组中的元素。
- 广播:NumPy的广播功能允许对不同形状的数组进行操作,使代码更简洁高效。
# 2. NumPy数据统计分析基础
NumPy作为Python中强大的科学计算库,不仅提供了高效的数据处理能力,还提供了丰富的统计分析功能。本章将深入探讨NumPy在数据统计分析方面的基础知识,包括统计量计算和数据分布分析。
### 2.1 统计量计算
统计量是描述数据集中趋势和离散程度的数值指标,在数据分析中具有重要意义。NumPy提供了多种函数来计算常见的统计量。
#### 2.1.1 均值、中位数、标准差
* 均值(mean):数据集中所有值的算术平均值,反映数据的中心趋势。
* 中位数(median):数据集中按从小到大排序后位于中间位置的值,不受极端值的影响。
* 标准差(std):数据集中各值与均值的离散程度,反映数据的波动性。
```python
import numpy as np
data = np.array([1, 3, 5, 7, 9])
# 计算均值
mean = np.mean(data)
print("均值:", mean)
# 计算中位数
median = np.median(data)
print("中位数:", median)
# 计算标准差
std = np.std(data)
print("标准差:", std)
```
输出:
```
均值: 5.0
中位数: 5.0
标准差: 2.8284271247461903
```
#### 2.1.2 方差、协方差、相关系数
* 方差(var):标准差的平方,反映数据集中各值与均值的平均离散程度。
* 协方差(cov):两个数据集对应值之间的协变性,反映两个数据集之间的相关性。
* 相关系数(corrcoef):协方差标准化后的值,表示两个数据集之间的相关程度,取值范围[-1, 1]。
```python
# 计算方差
var = np.var(data)
print("方差:", var)
# 计算协方差
data2 = np.array([2, 4, 6, 8, 10])
cov = np.cov(data, data2)[0, 1]
print("协方差:", cov)
# 计算相关系数
corr = np.corrcoef(data, data2)[0, 1]
print("相关系数:", corr)
```
输出:
```
方差: 8.0
协方差: 4.0
相关系数: 1.0
```
### 2.2 数据分布分析
数据分布分析旨在了解数据集中数据的分布情况,为后续的建模和预测提供基础。NumPy提供了多种函数来绘制直方图、散点图和箱线图等数据分布图。
#### 2.2.1 直方图、散点图、箱线图
* 直方图:反映数据集中不同值出现的频率,用于展示数据的分布形状。
* 散点图:显示两个数据集对应值之间的关系,用于识别数据之间的相关性。
* 箱线图:展示数据集中数据的分布情况,包括中位数、四分位数和极值。
```python
# 绘制直方图
import matplotlib.pyplot as plt
plt.hist(data)
plt.xlabel("值")
plt.ylabel("频率")
plt.title("直方图")
plt.show()
# 绘制散点图
plt.scatter(data, data2)
plt.xlabel("数据集1")
plt.ylabel("数据集2")
plt.title("散点图")
plt.show()
# 绘制箱线图
plt.boxplot([data, data2])
plt.xlabel("数据集")
plt.ylabel("值")
plt.title("箱线图")
plt.show()
```
#### 2.2.2 正态分布、t分布、卡方分布
* 正态分布:也称高斯分布,是一种常见的连续分布,其概率密度函数呈钟形曲线。
* t分布:在小样本情况下,样本均值的分布近似服从t分布,其概率密度函数与正态分布相似,但更平坦。
* 卡方分布:描述随机变量的平方和分布,在统计推断中广泛应用。
```python
# 绘制正态分布曲线
from scipy.stats import norm
x = np.linspace(-3, 3, 100)
y = norm.pdf(x, 0, 1)
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("概率密度")
plt.title("正态分布")
plt.show()
# 绘制t分布曲线
from scipy.stats import t
x = np.linspace(-3, 3, 100)
y = t.pdf(x, 5)
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("概率密度")
plt.title("t分布")
plt.show()
# 绘制卡方分布曲线
from scipy.stats import chi2
x = np.linspace(0, 10, 100)
y = chi2.pdf(x, 5)
plt.plot(x, y
```
0
0