整理了27个Python人工智能库,建议收藏

2023-11-12

为了大家能够对人工智能常用的 Python 库有一个初步的了解,以选择能够满足自己需求的库进行学习,对目前较为常见的人工智能库进行简要全面的介绍。

1、Numpy

NumPy(Numerical Python)是 Python的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,Numpy底层使用C语言编写,数组中直接存储对象,而不是存储对象指针,所以其运算效率远高于纯Python代码。
我们可以在示例中对比下纯Python与使用Numpy库在计算列表sin值的速度对比:

import numpy as np
import math
import random
import time

start = time.time()
for i in range(10):
    list_1 = list(range(1,10000))
    for j in range(len(list_1)):
        list_1[j] = math.sin(list_1[j])
print("使用纯Python用时{}s".format(time.time()-start))

start = time.time()
for i in range(10):
    list_1 = np.array(np.arange(1,10000))
    list_1 = np.sin(list_1)
print("使用Numpy用时{}s".format(time.time()-start))

从如下运行结果,可以看到使用 Numpy 库的速度快于纯 Python 编写的代码:

使用纯Python用时0.017444372177124023s
使用Numpy用时0.001619577407836914s

2、OpenCV

OpenCV 是一个的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时也提供了 Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。
下面代码尝试使用一些简单的滤镜,包括图片的平滑处理、高斯模糊等:

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('h89817032p0.png')
kernel = np.ones((5,5),np.float32)/25
dst = cv.filter2D(img,-1,kernel)
blur_1 = cv.GaussianBlur(img,(5,5),0)
blur_2 = cv.bilateralFilter(img,9,75,75)
plt.figure(figsize=(10,10))
plt.subplot(221),plt.imshow(img[:,:,::-1]),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(dst[:,:,::-1]),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(blur_1[:,:,::-1]),plt.title('Gaussian')
plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(blur_1[:,:,::-1]),plt.title('Bilateral')
plt.xticks([]), plt.yticks([])
plt.show()

OpenCV

3、Scikit-image

scikit-image是基于scipy的图像处理库,它将图片作为numpy数组进行处理。
例如,可以利用scikit-image改变图片比例,scikit-image提供了rescaleresize以及downscale_local_mean等函数。

from skimage import data, color, io
from skimage.transform import rescale, resize, downscale_local_mean

image = color.rgb2gray(io.imread('h89817032p0.png'))

image_rescaled = rescale(image, 0.25, anti_aliasing=False)
image_resized = resize(image, (image.shape[0] // 4, image.shape[1] // 4),
                       anti_aliasing=True)
image_downscaled = downscale_local_mean(image, (4, 3))
plt.figure(figsize=(20,20))
plt.subplot(221),plt.imshow(image, cmap='gray'),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(image_rescaled, cmap='gray'),plt.title('Rescaled')
plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(image_resized, cmap='gray'),plt.title('Resized')
plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(image_downscaled, cmap='gray'),plt.title('Downscaled')
plt.xticks([]), plt.yticks([])
plt.show()

Scikit-image

4、PIL

Python Imaging Library(PIL) 已经成为 Python 事实上的图像处理标准库了,这是由于,PIL 功能非常强大,但API却非常简单易用。
但是由于PIL仅支持到 Python 2.7,再加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容的版本,名字叫 Pillow,支持最新 Python 3.x,又加入了许多新特性,因此,我们可以跳过 PIL,直接安装使用 Pillow

5、Pillow

使用 Pillow 生成字母验证码图片:

from PIL import Image, ImageDraw, ImageFont, ImageFilter

import random

# 随机字母:
def rndChar():
    return chr(random.randint(65, 90))

# 随机颜色1:
def rndColor():
    return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 随机颜色2:
def rndColor2():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

# 240 x 60:
width = 60 * 6
height = 60 * 6
image = Image.new('RGB', (width, height), (255, 255, 255))
# 创建Font对象:
font = ImageFont.truetype('/usr/share/fonts/wps-office/simhei.ttf', 60)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 填充每个像素:
for x in range(width):
    for y in range(height):
        draw.point((x, y), fill=rndColor())
# 输出文字:
for t in range(6):
    draw.text((60 * t + 10, 150), rndChar(), font=font, fill=rndColor2())
# 模糊:
image = image.filter(ImageFilter.BLUR)
image.save('code.jpg', 'jpeg')

验证码

6、SimpleCV

SimpleCV 是一个用于构建计算机视觉应用程序的开源框架。使用它,可以访问高性能的计算机视觉库,如 OpenCV,而不必首先了解位深度、文件格式、颜色空间、缓冲区管理、特征值或矩阵等术语。但其对于 Python3 的支持很差很差,在 Python3.7 中使用如下代码:

from SimpleCV import Image, Color, Display
# load an image from imgur
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整理了27个Python人工智能库,建议收藏 的相关文章

  • 借力计算机视觉及深度学习,纽卡斯尔大学开发实时、自动化奶牛跛行检测系统

    本文首发自 HyperAI超神经微信公众号 内容一览 近期 纽卡斯尔大学联合费拉科学有限公司联合开发了一个针对多头奶牛的自动化 实时跛行检测系统 该系统能够按照跛行评分系统将奶牛进行分类 并且准确度高达 94 100 目前 该研究成果已发表
  • Spring Boot系列 - 3. SpringBoot项目学习汇总

    原文地址 https blog csdn net hemin1003 article details 53217489 网络上很多关于SpringBoot的资料和代码 但有一些根本运行不了 有些博主的代码还故意藏着掖着 一定要加他的微信才能
  • php 文件上传抓包,详解文件上传漏洞

    介绍 在现代互联网网站中 上传文件基本上是一种常见的功能 允许用户上传一些图片 视频以及其他类型的文件 如果网站出现文件上传漏洞 那么恶意用户就可以将可执行脚本程序上传到web服务器中 获得网站权限 进一步 gongji web服务器 当上
  • skywalking agent监控java服务

    一 前言 skywalking agent可以监控的服务类型有多种 python go java nodejs服务等都可以监控 现在通过java服务来演示skywalking agent的使用 并且是使用容器的方式实现 二 部署skywal
  • 拓闻

    大数据时代的来临为众多企业带来了更多的全新的发展机遇 而搜索引擎已经成为大数据领域的一个核心应用 其重要性不言而喻 很多公司在大数据离线统计分析方面已经具备了一定的能力 但是 很多应用场景往往要求在数秒内完成对几亿 几十亿甚至几百上千亿的数
  • 史上最全 Appium 自动化测试从基础到框架实战精华学习笔记(一)

    1080 402 31 8 KB 对测试人来说 Appium 是非常重要的一个开源跨平台自动化测试工具 它允许测试人员在不同的平台 iOS Android 等 使用同一套 API 来写自动化测试脚本 这样可大幅提升代码复用率和工作效率 本文
  • UI自动化之python+pytest+allure+selenium

    一 基础搭建 1 下载pycharm 配置环境变量 2 安装对应版本的webdriver 将webdriver放在项目根目录 3 pip install pytest 4 pip install allure 二 框架设计 三 目录详解 1
  • docker安装redis教程

    通过Docker方式安装redis教程 1 拉取镜像 方式一 指定版本 拉取redis6 2 5版本 docker pull redis 6 2 5 方式二 拉取redis最新的版本 docker pull redis 查看docker的镜
  • Reactor和Proactor的区别

    一 实现方式 Reactor 采用同步IO 用户层执行IO操作时 处于挂起状态 等待内核层完成 图示如下 Proactor 采用异步IO 用户层执行IO操作时 可以一边等待内核操作IO 一边自己去处理其他事情 等内核操作IO结束后 用户层被
  • MySQL中的BLOB类型

    一 概念 BLOB binary large object 二进制大对象 是一个可以存储二进制文件的容器 在计算机中 BLOB常常是数据库中用来存储二进制文件的字段类型 BLOB是一个大文件 典型的BLOB是一张图片或一个声音文件 由于它们
  • 传递点的大小

    仍然用attribute 因为是顶点着色器 11
  • 博客要写得好,Emoji要用对!

    EMOJI 01 表情与心情 02 动作与身份 03 动物与植物 04 食品与饮料 05 旅行和地点 06 娱乐与活动 07 物品与工具 08 符号与标识 01 表情与心情 02 动作与身份
  • 华为OD机试 - 最差产品奖( Python)

    题目描述 A公司准备对他下面的N个产品评选最差奖 评选的方式是首先对每个产品进行评分 然后根据评分区间计算相邻几个产品中最差的产品 评选的标准是依次找到从当前产品开始前M个产品中最差的产品 请给出最差产品的评分序列 输入描述 第一行 数字M
  • 手把手教你,把3D模型从stl格式导出iges格式的方法

    工具 Hypermesh 注意 下载和安装视频在我的上传资源里面 记得安装路径不能有中文 自己的操作账户名也不能是中文的 方法 第一 按照如下步骤 导入stl模型 第二步 点击Shaded 按钮 显示实体网格 第三步 点击Geom下的sur
  • 自己搭的12V 电机驱动电路设计

    1 单MOS管驱动电路 采用P75NF75为主角构成 2 双MOS管电机驱动电路设计 采用D4184管组合 3 半桥驱动电路设计 采用BTS7960芯片 两路半桥构成全桥驱动电路
  • s3c6410 android 移植Step by step

    Report 2009 03 05 转载请说明出处 不得用于商业用途 Linux forum id hongjiujing Porting android on s3c6410 Environment ubuntu 8 10 Board X
  • KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).

    问题描述 AirPressure AirPressure axf Error L6218E Undefined symbol aeabi assert referred from mbrtu o 问题原因 Error L6218E Unde
  • 爬虫乱码UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position

    在Python中将网址写入文件的时候 会碰到 UnicodeEncodeError gbk codec can t encode character xa0 in position 0这个问题 其实就是在windows中 新建的文本文件的默
  • Connecting the Dots: 基于图神经网络的多元时间序列预测——学习合集

    关于源代码和数据集的理解可以参考以下几篇文章 1 github源代码 数据集 安装环境要求 2 原论文百度云链接 提取码 1234 3 帮助理解论文的文章1 4 帮助理解论文的文章2 5 帮助理解论文的文章3 6 交通流量预测数据集解读 7
  • UnityVR--小程序8--激光门伤害

    本文使用Line Renderer组件 在门框中画出一道激光线 被线照射到的主角将会扣分 另外 激光仅检测ragCast层 所以主角必须添加到ragCast层中 与坦克对战小程序 UnityVR 小程序7 坦克对战 的设置相同 1 在场景中

随机推荐

  • MySQL多表查询 (超详细)

    一 多表关系 项目开发中 在进行数据库表结构设计时 会根据业务需求及业务模块之间的关系 分析并设计表结构 由于业务之间相互关联 所以各个表结构之间也存在着各种联系 基本上分为三种 一对多 多对一 多对多 一对一 1 1 一对多 案例 部门与
  • 在线算法(online algorithm)--竞争性分析

    文章目录 一 Problem Setting 1 1 competitve analysis 1 2 page replacement 二 Deterministic Online Algorithms 2 1 deterministic
  • 穆土 的学习和生活网站

    前端学习 哔哩哔哩 哔哩哔哩中有很多的 up 主 都有学习的资源 你可以学到等多东西 个人关注的 up 主 pink 老师 黑马培训的一位老师 他带领了很多人进入了前端的领域 我看他的 html css js 的入门商品 珠峰培训官方 周萧
  • 任意版本pytorch-gpu环境搭建方法

    任意版本pytorch gpu环境搭建方法 tortorish的博客 CSDN博客 网上关于pytorch gpu环境搭建的教程非常多 但若在国内 直接使用pytorch官网上的命令 经常会遇到下载过慢的情况 而若使用清华源 阿里源等网站
  • WindowBuilder for Eclipse 3.7

    http download eclipse org windowbuilder WB integration 3 7 MyEclipse10 7 1和MyEclipse10 7的下载地址 http downloads myeclipseid
  • 深聊自动化测试之:10年小鱼给你10条建议,让你在自动化界占据一个墙角

    10年小鱼的自动化建议 1 哪一刻 让你想起了自动化 1 1 执行回归测试 1 2 压测场景执行并发 1 3 UI稳定 接口不断升级 2 七问 是否了解自动化风险 2 1 团队成员的资历 2 2 自动化成本投入产出比 2 3 慎重对待UI级
  • Python中eval()函数的使用

    今天给大家分享一下Python中的eval 函数 如果感觉博主的文章还不错的话 希望大家点赞支持一下博主 文章目录 eval 函数 语法 实例 实例1 实例2 实例3 eval 函数 eval 函数用来执行一个字符串表达式 并返回表达式的值
  • 【Spring传播机制底层原理】

    一 Spring的事务传播机制 Spring的事务传播机制是Spring框架中最核心的机制之一 它能够灵活地控制多个事务方法的执行顺序 提交或回滚等行为 在Spring中 事务是通过TxManager来管理的 TxManager是一个接口
  • Hyper-V:无法打开虚拟机,因为虚拟机监控程序未运行

    管理员权打开 cmd 窗口 输入 bcdedit set hypervisorlaunchtype Auto 前提是机器已经开启了 虚拟化和开启了虚拟机监控程序
  • kafka 应用实战

    一 Java 中使用 kafka 进行通信 依赖
  • 孟岩谈通证(11):通证所代表的多维价值观

    通证Token都有那些多维价值观呢 我还是你举一个特别具体的例子来说明 我有一个朋友他开了一个社区 是专门做中小学教育课外辅导老师之间交流的 社区里大家互相交换教学资料 试题等等材料 你说这个东西有没有价值 教书育人 然后帮助孩子们成长 这
  • ssh远程连接Ubuntu(局域网和非局域网)

    文章目录 前言 1 局域网 远程连接 2 非局域网 远程连接 3 Zerotier常用命令 4 远程桌面控制 总结 前言 我们通常使用ssh连接虚拟机中的Ubuntu 方便学习 但是当在项目中遇到远程控制主机的时候 发现ssh连接不到外网主
  • Vue中实现电子围栏/围栏(高德地图)功能:

    1 思路 大部分与车辆轨迹相同 1 先获取key gt 官网 https lbs amap com ref https console amap com 2 下载并导入依赖 npm install vue amap S 3 使用 2 官网
  • 加速乐-AAencode-ob混淆

    加速乐 AAencode ob混淆 多层响应 Cookie 逆向 前言 本次案例是对加速乐 AAEncode OB 混淆方式的破解 破解出多层响应 Cookie 逆向 声明 本文章中所有内容仅供学习交流 相关链接做了脱敏处理 若有侵权 请联
  • Eclipse安装LomBok插件

    1 使用LomBok的好处在于实体类不用手动去生成set get方法了 类会在编译时自动生成 是代码简洁节省工作量 2 maven项目的pom文件添加坐标下载
  • 程序员进阶架构师的必备——思维导图

    架构师是什么 要做什么 架构师 是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物 架构师不是一个人 他需要建立高效的体系 带领团队去攻城略地 在规定的时间内完成项目 1 确认需求 架构师要懂得用户需求
  • 什么是面向对象思想

    面向对象是一种思想 是基于面向过程而言的 就是说面向对象是将功能等通过对象来实现 将功能封装进对象之中 让对象去实现具体的细节 这种思想是将数据作为第一位 而方法或者说是算法作为其次 这是对数据一种优化 操作起来更加的方便 简化了过程 面向
  • 人工智能作业homework2--------A*算法解决八数码

    1 启发式搜索算法A 启发式搜索算法A 一般简称为A算法 是一种典型的启发式搜索算法 其基本思想是 定义一个评价函数f 对当前的搜索状态进行评估 找出一个最有希望的节点来扩展 评价函数的形式如下 f n g n h n 其中n是被评价的节点
  • 全网最详细中英文ChatGPT接口文档(五)30分钟快速入门ChatGPT——手把手示例教程:如何建立一个人工智能回答关于您的网站问题,小白也可学

    30分钟开始使用ChatGPT Models模型 How to build an AI that can answer questions about your website 如何建立一个人工智能 回答有关您的网站的问题 Getting
  • 整理了27个Python人工智能库,建议收藏

    为了大家能够对人工智能常用的 Python 库有一个初步的了解 以选择能够满足自己需求的库进行学习 对目前较为常见的人工智能库进行简要全面的介绍 1 Numpy NumPy Numerical Python 是 Python的一个扩展程序库