分享

数据分析必会的 23 个python库

 万里潮涌 2024-02-16 发布于浙江

大家好,我是小寒。

       

1. numpy

NumPy 是 Python 中强大的数值计算库,提供对大型多维数组和矩阵的支持,以及对这些数据结构进行操作的数学函数。

import numpy as np

# Creating a NumPy array
arr = np.array([1, 2, 3, 4, 5])

# Calculating mean and standard deviation
mean_value = np.mean(arr)
std_dev = np.std(arr)

print(f'Mean: {mean_value}, Standard Deviation: {std_dev}')

2. Pandas

Pandas 是一个 Python 数据操作和分析库,提供 DataFrame 等数据结构,以实现高效的数据处理、清理和探索。
import pandas as pd

# Creating a Pandas DataFrame
data = {'Name': ['John''Alice''Bob'],
        'Age': [25, 28, 22]}
df = pd.DataFrame(data)

# Displaying the DataFrame
print(df)

3. Matplotlib

Matplotlib 是 Python 中的多功能 2D 绘图库,广泛用于创建静态、交互式和动画可视化。
import matplotlib.pyplot as plt

# Creating a simple line plot
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Simple Line Plot')
plt.show()
Image

4、Seaborn

Seaborn 是一个基于 Matplotlib 的数据可视化库,专为美观且信息丰富的统计图形而设计。
import seaborn as sns

# Using Seaborn to create a scatter plot
tips = sns.load_dataset('tips')
sns.scatterplot(x='total_bill', y='tip', data=tips)
plt.title('Scatter Plot using Seaborn')
plt.show()
Image

5、SciPy

SciPy 是一个用于数学、科学和工程的开源库,通过提供优化、集成、插值等附加功能来扩展 NumPy。

import scipy.stats

# Performing a t-test
data1 = [1, 2, 3, 4, 5]
data2 = [2, 4, 6, 8, 10]

t_stat, p_value = scipy.stats.ttest_ind(data1, data2)
print(f'T-statistic: {t_stat}, p-value: {p_value}')

6、Scikit-learn

Scikit-learn 是一个 Python 机器学习库,提供简单高效的数据分析和建模工具,包括各种分类、回归、聚类和降维算法。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler

# Load iris dataset as an example
iris = load_iris()
X = iris.data
y = iris.target

# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Standardize the features using StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# Create and train a Logistic Regression model
model = LogisticRegression(max_iter=1000)
model.fit(X_train_scaled, y_train)

# Make predictions on the test set
predictions = model.predict(X_test_scaled)

# Calculate accuracy
accuracy = accuracy_score(y_test, predictions)

print(f'Accuracy: {accuracy}')

7、Statsmodels

Statsmodels 是一个用 Python 估计和测试统计模型的库,提供全面的统计模型和假设检验。

import statsmodels.api as sm

# Performing linear regression
x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 4, 5]

x = sm.add_constant(x)
model = sm.OLS(y, x).fit()

# Displaying regression summary
print(model.summary())

8、Dask

Dask 是 Python 中的并行计算库,支持使用并行处理和任务调度来处理大于内存的计算。

import dask.dataframe as dd

# Creating a Dask DataFrame
data = {'Name': ['John''Alice''Bob'],
        'Age': [25, 28, 22]}
df = dd.from_pandas(pd.DataFrame(data), npartitions=2)

# Performing a simple computation
result = df['Age'].mean().compute()
print(f'Mean Age: {result}')

9、Bokeh

Bokeh 是一个 Python 交互式可视化库,针对现代 Web 浏览器进行演示,为数据探索提供优雅的交互式可视化效果。

from bokeh.plotting import figure, show
from bokeh.io import output_notebook

# Creating a simple Bokeh plot
output_notebook()

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

p = figure(title='Simple Bokeh Plot', x_axis_label='X-axis', y_axis_label='Y-axis')
p.line(x, y)

show(p)
Image

10、NLTK

NLTK(自然语言工具包)是一个功能强大的库,用于处理人类语言数据,提供用于标记化、词干提取、标记、解析等任务的工具。

import nltk
from nltk.tokenize import word_tokenize

nltk.download('punkt')

# Tokenizing a sentence
sentence = 'Natural Language Processing is fascinating.'
tokens = word_tokenize(sentence)

print(tokens)

11、Beautiful Soup

Beautiful Soup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据,提供了一种便捷的方式来抓取 Web 数据。

from bs4 import BeautifulSoup

# Parsing HTML content
html_content = '<html><body><p>This is a paragraph.</p></body></html>'
soup = BeautifulSoup(html_content, 'html.parser')

# Extracting text from the paragraph tag
paragraph_text = soup.find('p').text
print(paragraph_text)

12、Plotly

Plotly 是一个用于交互式可视化的 Python 图形库,适合创建交互式绘图和仪表板。

import plotly.express as px

# Creating a Plotly scatter plot
df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species', title='Iris Dataset')
fig.show()
Image

13、Altair

Altair 是 Python 中的声明式统计可视化库,允许用户使用简洁直观的语法创建各种交互式可视化。
import altair as alt
import pandas as pd

# Creating a simple Altair chart
data = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]})
chart = alt.Chart(data).mark_point().encode(x='x', y='y').properties(title='Altair Chart')

chart
Image

14、Vaex

Vaex 是一个用于惰性、核外 DataFrame 的 Python 库,可以高效处理大型数据集,而无需将它们完全加载到内存中。

import vaex

# Creating a Vaex DataFrame
data = {'Name': ['John''Alice''Bob'],
        'Age': [25, 28, 22]}
df = vaex.from_dict(data)

# Displaying the Vaex DataFrame
print(df)

15、Geopandas

Geopandas 是 Pandas 的扩展,专为处理地理空间数据而定制,可以有效地操作和分析地理数据集。

import geopandas as gpd
from shapely.geometry import Point

# Creating a GeoDataFrame with points
geometry = [Point(-74.0059, 40.7128), Point(-73.9862, 40.7306)]
gdf = gpd.GeoDataFrame(geometry=geometry, crs='EPSG:4326')

# Plotting the GeoDataFrame
gdf.plot()
plt.show()

16、Folium

Folium 是一个 Python 库,可简化交互式地图的创建,使交互式地图上的地理空间数据可视化变得轻松。

import folium

# Creating a Folium map
map = folium.Map(location=[37.7749, -122.4194], zoom_start=10)

# Adding a marker
folium.Marker(location=[37.7749, -122.4194], popup='San Francisco').add_to(map)

# Displaying the map
map

17、Xarray

Xarray 是一个用于处理带标签的多维数组的 Python 库,为处理复杂的数据集提供了强大而灵活的数据结构。

import xarray as xr

# Creating a simple xarray dataset
data = xr.DataArray([[1, 2], [3, 4]], dims=('x''y'), coords={'x': [0, 1], 'y': [0, 1]})

# Displaying the xarray dataset
print(data)

18、LightGBM

LightGBM 是 Python 中的梯度增强框架,针对大型数据集进行了优化,能够训练极其快速和准确的模型。

import lightgbm as lgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Loading Iris dataset and splitting it
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# Training a LightGBM classifier
model = lgb.LGBMClassifier()
model.fit(X_train, y_train)

# Making predictions and calculating accuracy
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)

print(f'Accuracy: {accuracy}')

19、Keras

Keras 是 Python 中的高级神经网络 API,通过用户友好的界面促进深度学习模型的开发和实验。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# Creating a simple Keras model
model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=10))
model.add(Dense(units=1, activation='sigmoid'))

# Displaying the model summary
model.summary()

20、Arrow

Arrow 是一个用于处理日期、时间和时间戳的 Python 库,提供更直观且人性化的 API 来处理时态数据。

import arrow

# Getting the current time in a specific timezone
local_time = arrow.now()
utc_time = arrow.utcnow()

print(f'Local Time: {local_time}')
print(f'UTC Time: {utc_time}')

21、NetworkX

NetworkX 是一个用于创建、分析和可视化复杂网络的 Python 库,适用于图论和网络分析中的任务。

import networkx as nx
import matplotlib.pyplot as plt

# Creating a simple graph
G = nx.Graph()
G.add_nodes_from([1, 2, 3])
G.add_edges_from([(1, 2), (2, 3)])

# Visualizing the graph
nx.draw(G, with_labels=True, font_weight='bold')
plt.show()

22、Dash

Dash 是一个用于构建交互式 Web 应用程序的 Python Web 框架,对于创建数据可视化和仪表板特别有用。

import dash
from dash import dcc, html

# Creating a simple Dash app
app = dash.Dash(__name__)

app.layout = html.Div(children=[
    html.H1(children='Dash Example'),
    dcc.Graph(
        id='example-graph',
        figure={
            'data': [{'x': [1, 2, 3], 'y': [4, 1, 2], 'type''bar''name''Bar Chart'}],
            'layout': {'title''Dash Bar Chart'}
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

23、PyCaret

PyCaret 是一个使用 Python 编写的开源低代码机器学习库,旨在通过自动化各种任务(例如特征工程、模型选择和超参数调整)来简化机器学习工作流程。

from pycaret.datasets import get_data
from pycaret.classification import *

# Loading a classification dataset
data = get_data('diabetes')

# Setting up PyCaret environment
exp1 = setup(data, target='Class variable')

# Comparing different models
compare_models()

Image

注意:免费整理了100 个数据分析相关的 python 库(还有精美的pdf版本
Image

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多