Python机器学习库:强大工具助力数据处理与模型构建
立即解锁
发布时间: 2025-09-18 01:38:44 阅读量: 2 订阅数: 12 AIGC 

### Python机器学习库:强大工具助力数据处理与模型构建
#### 1. 图形输出设置
在Jupyter或Spyder中,默认情况下,图形输出会直接显示在工作表或控制台中。我们可以使用“魔法”命令来改变图形的显示方式:
- `%matplotlib qt`:将图形发送到单独的窗口显示。
- `%matplotlib inline`:恢复使用内部输出。
需要注意的是,这些魔法命令仅适用于iPython控制台或笔记本,在经典的Python脚本中无法使用。若要在Python脚本中实现类似效果,可以使用以下代码:
```python
from IPython import get_ipython
# 内联绘图
get_ipython().run_line_magic('matplotlib', 'inline')
# 外部窗口绘图
get_ipython().run_line_magic('matplotlib', 'qt')
```
#### 2. 数学天才:NumPy
NumPy是“Numeric Python”或“Numerical Python”的缩写,它是Python的一个扩展模块,大部分由C语言编写,这确保了其数学和数值函数及例程能提供尽可能高的执行速度。
##### 2.1 功能特点
- 为Python编程语言补充了强大的数据结构,可高效处理大型数组和矩阵,目标是处理大规模数据结构(“大数据”)。
- 提供了丰富的数学函数,适用于处理这些数据。
##### 2.2 安装方法
- Anaconda:NumPy通常包含在Anaconda中,可直接使用。
- Raspberry Pi:通过`pip3 install numpy`进行安装。
##### 2.3 运算特点
在NumPy中,基本数学函数对数组进行逐元素操作。需要注意的是,`*`运算符是逐元素乘法,而非矩阵乘法;`@`运算符用于矩阵乘法。
下面是一个简单的对比示例,展示了NumPy在矩阵运算处理速度上的优势:
```python
# 假设在numpy_demo.ipynb的第四单元格示例
# Python实现
import time
start_time = time.time()
# 执行元素级加法操作
end_time = time.time()
python_time = end_time - start_time
print(f"Python: {python_time * 1000} ms")
# NumPy实现
import numpy as np
start_time = time.time()
# 执行元素级加法操作
end_time = time.time()
numpy_time = end_time - start_time
print(f"Numpy: {numpy_time * 1000} ms")
```
在一个四核3GHz CPU的计算机上,该示例中NumPy的执行速度比经典Python快42倍。
##### 2.4 矩阵定义与图形展示
使用NumPy可以轻松定义矩阵,例如定义一个3×3矩阵:
```python
import numpy as np
x = np.array([[1,2,3],[4,5,6],[7,8,9]]) # Create a rank 2 array
print(x)
```
若要将矩阵以二维图形显示,可以使用以下代码:
```python
import matplotlib.pyplot as plt
plot.imshow(np.asfarray(x), interpolation ="none" )
```
三维表示也很容易实现,示例代码如下:
```python
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline') # inline or qt
# Data generation
x = np.linspace(1,3,3)
y = np.linspace(1,3,3)
X, Y = np.meshgrid(y, x)
fig = plt.figure(figsize=(20, 20))
ax = fig.gca(projection = '3d')
Xi = X.flatten()
Yi = Y.flatten()
Zi = np.zeros(matrix.size)
dx = .8 * np.ones(matrix.size)
dy = .8 * np.ones(matrix.size)
dz = data.flatten()
ax.bar3d(Xi, Yi, Zi, dx, dy, dz, shade=True)
plt.show()
```
#### 3. 使用Pandas进行数据挖掘
Pandas源自“panel data (series)”一词,最初用于访问表格数据和时间序列。如今,它已成为数据科学家和分析师最重要的工具之一,是许多数据处理项目的核心。
##### 3.1 主要功能
- **数据处理**:可以对大量数据进行调整、清理、转换和分析。
- **数据加载**:通常是从不同格式文件中加载数据的首选工具,例如可以从CSV文件中提取数据并转换为Python可读的数据集。
- **统计分析**:包含平均、中位数计算、最值查找、相关性确定等统计方法。
- **数据可视化**:可借助MatPlotLib将数据以条形图、折线图或气泡图等形式进行可视化展示。
- **数据保存**:提供了将清理或转换后的数据保存到新文件或数据库的合适例程。
##### 3.2 操作示例
下面通过一个简单的示例展示如何使用Pandas创建和处理数据集:
```python
import pandas as pd
# 创建数据集
data = {
'shoes': [2, 1, 4, 1],
'socks': [2, 3, 7, 2]
}
# 创建DataFrame
clothes = pd.DataFrame(data, index=['Albert', 'Berta', 'Charly', 'Donna'])
print(clothes)
# 从文件读取数据
datafile = pd.read_csv('C:/DATA/pandas/clothes.csv')
# 处理矩阵
datafile = datafile + datafile
# 保存数据到新文件
datafile.to_csv('C:/DATA/pandas/new_clothes.csv')
# 从互联网下载数据
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class
```
0
0
复制全文
相关推荐









