1. NumPy
NumPy 是 Python 中科学计算的核心库之一,它是一个强大的 N 维数组对象,具有广播功能功能,它也可以用于整合 C/C ++ 和 Fortran 代码的工具。NumPy 库在数据科学和深度学习中是必不可少的。
numpy.random 提供了许多用于生成各种随机样本和分布的工具,包括:
rand(d0, d1, …, dn) 用于生成服从 0 到 1 均匀分布的浮点数。
randn(d0, d1, …, dn) 用于生成服从标准正态分布的浮点数。
normal(loc=0.0, scale=1.0, size=None) 用于生成指定均值和标准差下的浮点数。
示例:
import numpy as np
rand_array = np.random.rand(3, 3)
print(rand_array)
randn_array = np.random.randn(2, 2)
print(randn_array)
normal_array = np.random.normal(loc=0.0, scale=1.0, size=(2, 2))
print(normal_array)
2. Pandas
Pandas 是一个用于数据分析和处理的开源库,它的主要功能是将数据集合变成一个类似于 SQL 表格的形式,可以进行排序、分组、过滤和透视等操作,使数据分析更加高效。
2.1 读取和写入数据
Pandas 可以方便读取和写入多种文件格式的数据集,如 CSV,Excel,SQL 数据库等。它提供了三个主要函数:
read_csv(filepath_or_buffer) 用于读取 CSV 文件。
read_excel(io, sheet_name, …) 用于读取 Excel 文件。
to_sql(name, con, if_exists) 用于将 Pandas 数据写入 SQL 数据库中。
示例:
import pandas as pd
# 读取 CSV 文件
read_csv = pd.read_csv('data.csv')
# 读取 Excel 文件
read_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 将 Pandas 数据写入 SQL 数据库中
to_sql = pd.DataFrame(data={'name': ['Alice', 'Bob'], 'age': [25, 30]})
to_sql.to_sql('users', con=engine, if_exists='replace', index=False)
2.2 数据处理
Pandas 可以对数据集进行排序、去重、过滤、分组、透视等操作,从而快速地处理数据集合。
sort_values(by) 用于按列值排序。
drop_duplicates() 用于去重。
filter(items) 用于过滤行和列。
groupby(by) 用于分组。
pivot_table(values, index, columns) 用于透视表格。
示例:
import pandas as pd
# 排序
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 20]})
df.sort_values(by=['age'], inplace=True)
print(df)
# 去重
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'Bob'], 'age': [25, 30, 20, 30]})
df.drop_duplicates(inplace=True)
print(df)
# 过滤
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 20], 'gender': ['F', 'M', 'M']})
df_filtered = df.filter(items=['name', 'age'])
print(df_filtered)
# 分组
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 20], 'gender': ['F', 'M', 'M']})
grouped = df.groupby(['gender'])
for name, group in grouped:
print(name)
print(group)
# 透视表格
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 20], 'gender': ['F', 'M', 'M'], 'score': [70, 80, 60]})
pivot_table = pd.pivot_table(df, values=['score'], index=['name'], columns=['gender'])
print(pivot_table)
3. Matplotlib
Matplotlib 是用于绘制 2D 和 3D 图形的 Python 库。它可以用于绘制线图、散点图、柱状图等多种数据可视化图形。
3.1 折线图
折线图用于绘制两个变量之间的关系。下面是一个折线图的示例:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
3.2 散点图
散点图用于绘制两个变量之间的关系,并且每个点的大小表示该点在数据集中的重要性。下面是一个散点图的示例:
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
size = np.random.rand(100) * 30
plt.scatter(x, y, s=size)
plt.show()
3.3 柱状图
柱状图用于比较多个变量之间的差异。下面是一个柱状图的示例:
import matplotlib.pyplot as plt
import numpy as np
x = ['A', 'B', 'C', 'D', 'E']
y = np.random.rand(5)
plt.bar(x, y)
plt.show()
4. TensorFlow
TensorFlow 是一个用于构建和训练深度学习模型的开源机器学习库。它采用数据流图来描述计算,可以在不同的硬件上运行,包括 CPU、GPU 和 TPU。
4.1 建立模型
TensorFlow 可以构建多种类型的深度学习模型,包括卷积神经网络(CNN)、循环神经网络(RNN)和变换器(Transformer)等。
下面是一个使用 TensorFlow 构建简单的全连接神经网络的示例:
import tensorflow as tf
from tensorflow import keras
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10)
])
4.2 训练模型
训练模型是深度学习中最关键的一步,TensorFlow 提供了多种方法和工具来训练模型。
下面是一个使用 TensorFlow 训练简单的全连接神经网络的示例:
import tensorflow as tf
from tensorflow import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10)
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
5. Scikit-learn
Scikit-learn 是一个用于机器学习和数据挖掘的开源 Python 库。它包含多种分类、回归和聚类的算法,可以在大规模数据集上进行训练和预测。
5.1 建立模型
Scikit-learn 可以使用多种分类、回归和聚类的算法来建立模型,包括 SVM、多层感知器、KNN 等。
下面是一个使用 Scikit-learn 建立简单的线性回归模型的示例:
from sklearn.linear_model import LinearRegression
X = [[1, 2], [2, 4], [3, 6], [4, 8]]
y = [3, 6, 9, 12]
model = LinearRegression()
model.fit(X, y)
print(model.coef_)
print(model.intercept_)
5.2 预测和评估
Scikit-learn 可以用于预测和评估模型的性能。
下面是一个使用 Scikit-learn 进行简单线性回归预测和评估的示例:
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
X_train = [[1, 2], [2, 4], [3, 6]]
y_train = [3, 6, 9]
X_test = [[4, 8]]
y_test = [12]
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(y_pred)
print(mse)
6. Django
Django 是一个用于 Web 开发的开源 Python 框架,它提供了多个组件和工具,包括模板系统、ORM、表单处理等。
6.1 创建 Django 项目和应用
使用 Django 可以方便地创建 Web 应用程序。下面是一个使用 Django 创建项目和应用的示例:
# 创建 Django 项目
django-admin startproject myproject
# 创建 Django 应用
python manage.py startapp myapp
6.2 构建视图和模板
Django 可以使用视图和模板来构建 Web 应用程序。
下面是一个使用 Django 构建简单视图和模板的示例:
# views.py
from django.http import HttpResponse
from django.shortcuts import render
def index(request):
return HttpResponse("Hello, world!")
def my_view(request):
context = {'name': 'Alice'}
return render(request, 'my_template.html', context)
# my_template.html
<!DOCTYPE html>
<html>
<body>
<p>Hello, {{name}}!</p>
</body>
</html>
7. Flask
Flask 是一个轻量级 Web 框架,适用于快速构建简单的 Web 应用程序。
7.1 构建 Flask Web 应用程序
使用 Flask 可以方便地创建 Web 应用程序。下面是一个使用 Flask 创建 Web 应用程序的示例:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
@app.route('/add')
def add():
a = request.args.get('a')
b = request.args.get('b')
result = int(a) + int(b)
return str(result)
if __name__ == '__main__':
app.run()
7.2 构建 Flask Web 表单
使用 Flask 可以方便地构建 Web 表单。
下面是一个使用 Flask 构建简单 Web 表单的示例:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/submit', methods=['POST'])
def submit():
name = request.form['name']
return 'Hello, ' + name + '!'
if __name__ == '__main__':
app.run()
8. Requests
Requests 是一个用于发送 HTTP 请求的 Python 库,可以方便地进行网络编程和数据爬取。
8.1 发送 HTTP 请求
使用 Requests 可以方便地发送 HTTP 请求。
下面是一个使用 Requests 发送 GET 和 POST 请求的示例:
import requests
# 发送 GET 请求
response = requests.get('https://www.example.com')
print(response.content)
# 发送 POST 请求
data = {'name': 'Alice', 'age': 25}
response = requests.post('https://www.example.com', data=data)
print(response.content)
9. Beautiful Soup
Beautiful Soup 是一个用于解析 HTML 和 XML 文档的 Python 库,可以方便地进行 Web 数据挖掘和数据清洗。
9.1 解析 HTML 文档
使用 Beautiful Soup 可以方便地解析 HTML 文档。
下面是一个使用 Beautiful Soup 解析 HTML 文档的示例:
from bs4 import BeautifulSoup
import requests
response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.content, 'html.parser')
print(soup.prettify())
9.2 提取标签
使用 Beautiful Soup 可以方便地提取 HTML 标签。
下面是一个使用 Beautiful Soup 提取 HTML 标签的示例:
from bs4 import BeautifulSoup
import requests
response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.content, 'html.parser')
tags = soup.find_all('a')
for tag in tags:
print(tag.get('href'))
10. SQLAlchemy
SQLAlchemy 是一个用于 Python 的 SQL 工具和 ORM,可以方便地访问和管理 SQL 数据库。
10.1 连接数据库
使用 SQLAlchemy 可以方便地连接 SQL 数据库,如 MySQL,Oracle,PostgreSQL 等。
下面是一个使用 SQLAlchemy 连接 MySQL 数据库的示例:
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://username:password@localhost/mydatabase')
conn = engine.connect()
10.2 执行 SQL 查询
使用 SQLAlchemy 可以方便地执行 SQL 查询。
下面是一个使用 SQLAlchemy 执行 SQL 查询的示例:
from sqlalchemy import