22个常用Python包(个最常用的Python包)

本文将重点介绍Python的22个常用包,在日常开发和应用中非常常见。

一、NumPy

NumPy是Python科学计算的基础包,提供了高性能的多维数组对象和用于数组计算的工具。

NumPy数组可以执行数学运算、矩阵运算等多种操作,是数据分析与处理中必不可少的工具。

import numpy as np
a = np.array([1,2,3])
b = np.array([[1,2,3],[4,5,6]])
print(a)
print(b)
print(b.shape)
print(b.dtype)

二、Pandas

Pandas是基于NumPy的一个数据处理和分析库,提供了用于快速分析数据的数据结构和函数。

Pandas的主要数据结构是Series和DataFrame,可对数据进行合并、处理、留存等操作。

import pandas as pd
data = pd.read_csv('data.csv')
df = pd.DataFrame(data)
print(df.head()) # 预览前5行数据
print(df.info()) # 查看列名、非空值数量、数据类型等信息

三、Matplotlib

Matplotlib是Python的绘图库,可以创建各种静态、动态、交互式的图表。

Matplotlib提供了多种绘图风格和格式选项,可用于数据可视化和图表展示。

import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.title('Sin Function')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

四、Scikit-learn

Scikit-learn是开源的Python机器学习库,包含了各种分类、回归、聚类、降维等算法。

Scikit-learn也提供了数据预处理、特征提取、模型评估等功能,可用于各种机器学习应用。

from sklearn import datasets, svm
iris = datasets.load_iris()
X = iris.data
y = iris.target
svc = svm.SVC(kernel='linear')
svc.fit(X, y)
print(svc.predict([[5.0, 3.0, 4.0, 2.0]]))

五、TensorFlow

TensorFlow是由Google开发的Python深度学习框架,提供了各种神经网络的构建和训练工具。

TensorFlow可用于图像、音频、文本等多种数据类型的处理和分析,广泛应用于机器学习和人工智能领域。

import tensorflow as tf
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

六、Keras

Keras是高级神经网络API,由Python编写,支持多种深度学习框架,如TensorFlow、Theano等。

Keras提供了一系列简单易用的接口,可用于搭建各种神经网络模型,并进行训练和测试。

from keras.models import Sequential
from keras.layers import Dense, Dropout
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dropout(0.5))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])
model.fit(X_train, y_train,
          epochs=20,
          batch_size=128,
          validation_data=(X_test, y_test))

七、Requests

Requests是一个Python的HTTP库,用于发送和接收各种HTTP请求和响应。

Requests支持多种HTTP操作,如GET、POST、PUT、DELETE等,并且具有自动化的内容解析和编码转换功能。

import requests
response = requests.get('http://www.baidu.com')
print(response.text)

八、BeautifulSoup

BeautifulSoup是Python的一个HTML解析库,用于解析和处理HTML和XML文本。

BeautifulSoup可以从HTML页面中抽取数据、删除标签、解析链接等操作,适用于数据挖掘和网络爬虫等场景。

from bs4 import BeautifulSoup
import requests
response = requests.get('http://www.baidu.com')
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title)

九、Scrapy

Scrapy是Python的一个快速高效的网络爬虫框架,可以用于数据抓取和爬虫开发。

Scrapy提供了数据抓取、数据存储、重试、并发等功能,操作简单,可应用于各种爬虫场景。

import scrapy
class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://quotes.toscrape.com/page/1/',
        'http://quotes.toscrape.com/page/2/',
    ]
    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').get(),
                'author': quote.css('span small::text').get(),
                'tags': quote.css('div.tags a.tag::text').getall(),
            }

十、Flask

Flask是Python的一个轻量级Web框架,用于快速开发Web应用。

Flask提供了简单易用的路由、视图、各种插件等功能,适用于小型Web应用的开发。

from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def hello_world():
    if request.method == 'POST':
        data = request.get_json()
        return jsonify({'message': 'Hello, {}!'.format(data['name'])})
    else:
        return 'Hello, World!'

十一、Django

Django是Python的一个Web开发框架,用于快速、高效、可扩展的Web应用开发。

Django提供了模板、ORM、路由、视图、Admin等功能,适用于中大型Web应用的开发和维护。

from django.shortcuts import render
from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, World!")

十二、Pygame

Pygame是Python的一个跨平台游戏开发库,用于2D游戏、动画和交互式应用的开发。

Pygame支持音频、图像、事件等多种处理工具,适用于小型游戏和交互式应用的开发。

import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Hello, Pygame!')
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.flip()

十三、OpenCV

OpenCV是Python计算机视觉和图像处理的库,提供了大量的图像处理和计算机视觉函数和工具。

OpenCV支持各种图像和视频的处理、分析、分类等应用,是深度学习和计算机视觉领域的重要工具。

import cv2
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
cv2.imshow('edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

十四、PyTorch

PyTorch是Facebook开源的Python深度学习框架,提供了动态计算图的支持。

PyTorch的设计理念是“define-by-run”,可以更加灵活地进行神经网络的搭建和调整,适用于各种应用场景。

import torch
import torch.nn as nn
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(1, 6, 3)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 3)
        self.fc1 = nn.Linear(16 * 6 * 6, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)
    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 6 * 6)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

十五、NLTK

NLTK(Natural Language Toolkit)是Python的自然语言处理工具包,提供了各种自然语言处理技术和方法。

NLTK包括分词、标记、词性分析、命名实体识别、情感分析等多种自然语言处理工具,适用于文本挖掘和处理。

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize
text = "Hello, how are you?"
tokens = word_tokenize(text)
print(tokens)

十六、SciPy

SciPy是Python的科学计算工具包,包括了各种数学、统计、优化、插值、信号处理、图像处理等模块和函数。

SciPy是NumPy的扩展,提供了更多的高级函数和数学工具,适用于数值计算和科学应用。

from scipy import optimize
import numpy as np
def f(x):
    return np.exp(x) - 2
root = optimize.root_scalar(f, method='brentq', bracket=[0,1])
print(root.root)

十七、SymPy

SymPy是Python的一个符号计算库,可以处理符号和变量,计算微积分、代数等公式。

SymPy提供了各种数学函数、变量、求导、积分、线性代数等操作,适用于科学计算和数学研究。

from sympy import *
x, y, z = symbols('x y z')
f = x**2 + y**2 + z**2 - 1
grad_f = [f.diff(var) for var in (x, y, z)]
print(grad_f)

十八、PyCharm

PyCharm是Python多功能集成开发环境(IDE),由JetBrains开发。

PyCharm提供了代码编辑、调试、版本控制、测试、代码分析、代码重构等多种开发工具,适用于Python开发和项目管理。

# no example code to provide            

Published by

风君子

独自遨游何稽首 揭天掀地慰生平