模式切换
数据科学与机器学习
NumPy(数值计算库)
NumPy 是 Python 中用于数值计算的基础库,提供高效的多维数组对象和相关的数学函数。
NumPy 数组
创建数组:使用 numpy.array()
、numpy.zeros()
、numpy.ones()
等函数创建数组。
python
import numpy as np
# 创建一维数组
array_1d = np.array([1, 2, 3])
# 创建二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
数组操作
数组的索引与切片:通过索引访问数组元素,使用切片操作提取部分数据。
python
# 访问元素
element = array_2d[0, 1] # 访问第一行第二列的元素
# 切片
slice_array = array_2d[:, 1] # 访问第二列
数组运算
基本运算:支持数组之间的加减乘除操作,使用 numpy
函数进行数学运算。
python
array_a = np.array([1, 2, 3])
array_b = np.array([4, 5, 6])
result = array_a + array_b # 数组加法
广播(Broadcasting)
NumPy支持不同形状的数组之间的运算,自动扩展较小的数组以匹配较大的数组形状。
Pandas(数据分析库)
Pandas 是数据分析的强大工具,提供了数据结构(如 Series 和 DataFrame)来处理和分析数据。
数据结构
- Series:一维标签数组。
- DataFrame:二维表格数据,类似于电子表格。
python
import pandas as pd
# 创建 Series
series = pd.Series([1, 2, 3, 4])
# 创建 DataFrame
data = {'Column1': [1, 2], 'Column2': [3, 4]}
df = pd.DataFrame(data)
数据操作
数据选择与过滤:使用标签或条件选择数据。
python
# 选择列
column1 = df['Column1']
# 过滤数据
filtered_df = df[df['Column1'] > 1]
数据清洗
处理缺失值:使用 dropna()
和 fillna()
方法处理缺失数据。
python
df.fillna(0, inplace=True) # 将缺失值替换为0
数据合并与连接
使用 concat()
和 merge()
方法合并不同的 DataFrame。
Matplotlib/Seaborn(数据可视化)
Matplotlib 和 Seaborn 是常用的数据可视化库,能够创建多种类型的图表。
Matplotlib
创建简单的线图、柱状图、散点图等。
python
import matplotlib.pyplot as plt
# 简单的线图
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y)
plt.title("Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
Seaborn
Seaborn 基于 Matplotlib,提供更美观和复杂的统计图表。
python
import seaborn as sns
# 散点图
sns.scatterplot(data=df, x='Column1', y='Column2')
plt.show()
Scikit-learn(机器学习库)
Scikit-learn 是 Python 中最常用的机器学习库,提供多种分类、回归和聚类算法。
基本概念
数据预处理:数据归一化、标准化、缺失值处理等。
模型训练
使用不同的模型进行训练,例如线性回归、支持向量机、决策树等。
python
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 数据准备
X = df[['Column1']]
y = df['Column2']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 线性回归模型训练
model = LinearRegression()
model.fit(X_train, y_train)
模型评估
通过交叉验证、混淆矩阵、准确率、均方误差等方法评估模型性能。
python
from sklearn.metrics import mean_squared_error
# 预测
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print(f'Mean Squared Error: {mse}')
基础算法(线性回归、分类、聚类等)
线性回归
用于预测连续值。模型假设输入特征与输出之间存在线性关系。
python
from sklearn.linear_model import LinearRegression
# 创建和训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
分类
常用分类算法包括逻辑回归、K 近邻、支持向量机等,主要用于将数据分到不同类别。
python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建和训练K近邻模型
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
聚类
K 均值聚类是常用的无监督学习算法,用于将数据分成K个簇。
python
from sklearn.cluster import KMeans
# K均值聚类
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)