数据分析必会的十个 Python 库

2024年 1月 30日 57.4k 0

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 = '
  • 1
  • 2
  • 3
' 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()

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论