精选 15 个顶级 Python 库,你必须要试试

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