数据分析必会的十个 Python 库
Scikit-learn
Scikit-learn 是一个功能强大的机器学习库,为监督和无监督学习、模型选择和预处理提供了广泛的算法。Scikit-learn 简化了构建机器学习模型的过程,使其成为数据科学家和分析师的热门选择。
可以通过 pip 命令来进行安装。
pip install scikit-learn
以下是导入和使用 scikit-learn 的方法。
import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression df = pd.read_csv('data.csv') X = df.drop('target', axis=1) y = df['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = LogisticRegression().fit(X_train, y_train) y_pred = model.predict(X_test)
Statsmodels
Statsmodels 是一个面向统计的模块,用于数据分析、统计推断和数据建模。它提供了模型拟合、假设检验等工具。Statsmodels 对于生成统计数据和假设检验结果特别有用。
同样,我们也可以直接使用 pip 来安装它。
pip install statsmodels
以下是导入和使用 Scipy 的方法。
import statsmodels.api as sm import pandas as pd df = pd.read_csv('data.csv') model = sm.OLS(endog=df['target'], exog=df[['X1', 'X2']]) results = model.fit() print(results.summary())
Scipy
SciPy 是基于 Python 的一个重要科学计算库,它构建在 NumPy 的基础上,提供了大量的数学算法和函数工具,主要用于科学和工程领域的计算。
要安装 Scipy,请在终端中运行以下命令。
pip install scipy
以下是导入和使用 Scipy 的方法。
import numpy as np from scipy.optimize import minimize def objective(x): return np.sum((x[0] - x[1])**2) start = np.array([1, 1]) opt = minimize(objective, start, method='TNC') print(opt.x)
TensorFlow
TensorFlow 是一个开源平台,用于构建机器学习模型以及训练、评估和部署它们。它使用 GPU 和 TPU 提供加速计算,并支持跨多个 CPU、GPU 或 TPU 设备进行分布式训练。
以下是导入和使用 TensorFlow 的方法。
import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Dense(64, input_shape=(1000,)), tf.keras.layers.Dense(1), tf.keras.layers.Activation('sigmoid') ]) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(x_train, y_train, epochs=100, validation_split=0.2)
Keras
Keras 是一个开源神经网络库,用 Python 编写,能够在 TensorFlow 和 CNTK 上运行。它提供了更高层次的抽象,可以快速高效地构建深度学习模型。
以下是导入和使用 Keras 的方法。
import keras from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(64, input_shape=(1000,))) model.add(Dense(1)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=100, validation_split=0.2)
PyTorch
PyTorch 是一个开源的机器学习库,广泛用于计算机视觉和自然语言处理等应用领域。PyTorch 以其易于使用和灵活性而闻名,特别适用于深度学习和神经网络的研究与开发。
以下是导入和使用 PyTorch 的方法。
import torch import torch.nn as nn import torch.optim as optim # 创建一个简单的线性模型 model = nn.Linear(in_features=1, out_features=1) # 定义损失函数和优化器 criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01) # 示例数据 x_train = torch.tensor([[1.0], [2.0], [3.0]]) y_train = torch.tensor([[2.0], [4.0], [6.0]]) # 训练模型 for epoch in range(1000): model.train() optimizer.zero_grad() # 正向传播 y_pred = model(x_train) # 计算损失 loss = criterion(y_pred, y_train) # 反向传播和优化 loss.backward() optimizer.step() # 测试模型 model.eval() with torch.no_grad(): y_pred = model(torch.tensor([[4.0]])) print(y_pred)
PySpark
PySpark 是 Apache Spark 的 Python 模块。它提供了用于大数据处理的 Python 高级 API,并支持关系数据源和 NoSQL 数据源。PySpark 提供丰富的数据框架和 SQL 功能。
import pyspark.sql.functions as F df = spark.createDataFrame([(1, 'A'), (2, 'B'), (3, 'C'), (4, 'B')], ['id', 'word']) result = df.groupBy('word').count().orderBy('count', ascending=False) result.show()
Requests
Requests 是一种发送 HTTP 请求并处理其响应的简单、灵活且可重用的方式。它提供了对类 UNIX 代码定制和技术的快速访问。
要安装 Requests,请在终端中运行以下命令。
pip install requests
以下是导入和使用请求的方法。
import requests response = requests.get('https://example.com') print(response.status_code)
BeautifulSoup
BeautifulSoup 是一个用于从 HTML 和 XML 文档中提取数据的 Python 库。它创建了文档的解析树,使得用户可以方便地提取数据。
要安装 BeautifulSoup,请在终端中运行以下命令。
pip install beautifulsoup4
以下是导入和使用 BeautifulSoup 的方法。
from bs4 import BeautifulSoup html = '123' soup = BeautifulSoup(html, 'html.parser') li_list = soup.find_all('li') for li in li_list: print(li.get_text())
Flask
Flask 是一个用 Python 编写的轻量级 Web 应用框架。它被广泛用于快速开发简单的网站和 API。
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' app.run()