數(shù)據(jù)分析必會的十個 Python 庫
Scikit-learn
Scikit-learn 是一個功能強(qiáng)大的機(jī)器學(xué)習(xí)庫,為監(jiān)督和無監(jiān)督學(xué)習(xí)、模型選擇和預(yù)處理提供了廣泛的算法。Scikit-learn 簡化了構(gòu)建機(jī)器學(xué)習(xí)模型的過程,使其成為數(shù)據(jù)科學(xué)家和分析師的熱門選擇。
可以通過 pip 命令來進(jìn)行安裝。
pip install scikit-learn
以下是導(dǎo)入和使用 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 是一個面向統(tǒng)計的模塊,用于數(shù)據(jù)分析、統(tǒng)計推斷和數(shù)據(jù)建模。它提供了模型擬合、假設(shè)檢驗(yàn)等工具。Statsmodels 對于生成統(tǒng)計數(shù)據(jù)和假設(shè)檢驗(yàn)結(jié)果特別有用。
同樣,我們也可以直接使用 pip 來安裝它。
pip install statsmodels
以下是導(dǎo)入和使用 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 的一個重要科學(xué)計算庫,它構(gòu)建在 NumPy 的基礎(chǔ)上,提供了大量的數(shù)學(xué)算法和函數(shù)工具,主要用于科學(xué)和工程領(lǐng)域的計算。
要安裝 Scipy,請在終端中運(yùn)行以下命令。
pip install scipy
以下是導(dǎo)入和使用 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 是一個開源平臺,用于構(gòu)建機(jī)器學(xué)習(xí)模型以及訓(xùn)練、評估和部署它們。它使用 GPU 和 TPU 提供加速計算,并支持跨多個 CPU、GPU 或 TPU 設(shè)備進(jìn)行分布式訓(xùn)練。
以下是導(dǎo)入和使用 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 是一個開源神經(jīng)網(wǎng)絡(luò)庫,用 Python 編寫,能夠在 TensorFlow 和 CNTK 上運(yùn)行。它提供了更高層次的抽象,可以快速高效地構(gòu)建深度學(xué)習(xí)模型。
以下是導(dǎo)入和使用 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 是一個開源的機(jī)器學(xué)習(xí)庫,廣泛用于計算機(jī)視覺和自然語言處理等應(yīng)用領(lǐng)域。PyTorch 以其易于使用和靈活性而聞名,特別適用于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的研究與開發(fā)。
以下是導(dǎo)入和使用 PyTorch 的方法。
import torch
import torch.nn as nn
import torch.optim as optim
# 創(chuàng)建一個簡單的線性模型
model = nn.Linear(in_features=1, out_features=1)
# 定義損失函數(shù)和優(yōu)化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 示例數(shù)據(jù)
x_train = torch.tensor([[1.0], [2.0], [3.0]])
y_train = torch.tensor([[2.0], [4.0], [6.0]])
# 訓(xùn)練模型
for epoch in range(1000):
model.train()
optimizer.zero_grad()
# 正向傳播
y_pred = model(x_train)
# 計算損失
loss = criterion(y_pred, y_train)
# 反向傳播和優(yōu)化
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 模塊。它提供了用于大數(shù)據(jù)處理的 Python 高級 API,并支持關(guān)系數(shù)據(jù)源和 NoSQL 數(shù)據(jù)源。PySpark 提供豐富的數(shù)據(jù)框架和 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 是一種發(fā)送 HTTP 請求并處理其響應(yīng)的簡單、靈活且可重用的方式。它提供了對類 UNIX 代碼定制和技術(shù)的快速訪問。
要安裝 Requests,請在終端中運(yùn)行以下命令。
pip install requests
以下是導(dǎo)入和使用請求的方法。
import requests
response = requests.get('https://example.com')
print(response.status_code)
BeautifulSoup
BeautifulSoup 是一個用于從 HTML 和 XML 文檔中提取數(shù)據(jù)的 Python 庫。它創(chuàng)建了文檔的解析樹,使得用戶可以方便地提取數(shù)據(jù)。
要安裝 BeautifulSoup,請在終端中運(yùn)行以下命令。
pip install beautifulsoup4
以下是導(dǎo)入和使用 BeautifulSoup 的方法。
from bs4 import BeautifulSoup
html = '<ul><li>1</li><li>2</li><li>3</li></ul>'
soup = BeautifulSoup(html, 'html.parser')
li_list = soup.find_all('li')
for li in li_list:
print(li.get_text())
Flask
Flask 是一個用 Python 編寫的輕量級 Web 應(yīng)用框架。它被廣泛用于快速開發(fā)簡單的網(wǎng)站和 API。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
app.run()