草庐IT

盘点10个冷门Python库,原来Python还能实现这些功能?

Mr.Winter` 2023-05-11 原文

目录

👉 1 PrettyErrors

PrettyErrors是一款可以让Python抛出的异常变得通俗易懂的强大工具。

官网的示例:


可以看出,出错的文件、所在行、所在函数或模块都被用不同的颜色标记出来,比起左边密密麻麻、眼花缭乱的错误提示,显然是优化过的提示更人性化!

这个工具有两种安装方式:

  • 全局安装
    python -m pip install pretty_errors
    
  • 局部项目使用
    import pretty_errors
    pretty_errors.configure(
     separator_character = '*',
     filename_display    = pretty_errors.FILENAME_EXTENDED,
     line_number_first   = True,
     display_link        = True,
     lines_before        = 5,
     lines_after         = 2,
     line_color          = pretty_errors.RED + '> ' + pretty_errors.default_config.line_color,
     code_color          = '  ' + pretty_errors.default_config.line_color,
     truncate_code       = True,
     display_locals      = True
     )
     pretty_errors.blacklist('c:/python')
    

👉 2 Rich

Rich是一个可以为终端提供富文本和精美格式的 Python 库,利用Rich API可以很容易的在终端输出添加各种颜色和不同风格。Rich还可以绘制漂亮的表格,进度条,markdown,突出显示语法的源代码及回溯等等。

官网的示例:

Rich是跨平台库,适用于LinuxOSXWindows。安装也很方便

python -m pip install rich

博主试着用了下这个库,下面是测试案例,体验拉满~。

from rich.console import Console
console = Console()

test_data = [
    {"专业": "模式识别与智能系统", "学科": "人工智能", "params": [None, 1, 2, 4, False, True], "id": "1",},
    {"专业": "模式识别与智能系统", "学科": "深度学习", "params": [7]},
    {"专业": "模式识别与智能系统", "学科": "机器视觉", "params": [42, 23], "id": "2"},
]

def test_log():
    enabled = False
    context = {
        "天气": "阴",
    }
    movies = ["误杀2", "江照黎明"]
    console.log("Hello from", console, "!")
    console.log(test_data, log_locals=True)

test_log()

👉 3 Dear PyGui

Dear PyGui是一个易于使用但功能强大的非终端Python GUI框架。

官网的示例:


Dear PyGui基于及时渲染和GPU来提供高度动态的用户接口,且Dear PyGui是跨平台的,在Windows 10macOSLinux甚至是树莓派Raspberry Pi 4上都能使用;安装起来也相当简单:

pip install dearpygui
or
pip3 install dearpygui

👉 4 HummingBird

HummingBird是微软推出的一款人工智能库,可以将传统人工智能模型编译成张量计算,了解深度学习框架,如Tensorflow、Pytorch的同学一定知道张量的重要性。

HummingBird允许用户几乎无缝地使用各种深度学习框架来加速机器学习模型,基于HummingBird有很多好处:

  • 所有当前或将来在神经网络框架中的优化都会被引入;
  • 硬件加速;
  • 提供独一无二的统一平台来支持所有传统机器学习模型和深度学习;
  • 无需重建模型

总之,HummingBird把深度学习的入门门槛又大大降低了。

HummingBird库的一行安装代码如下:

pip install hummingbird-ml

👉 5 HiPlot

HiPlot是微软推出的用于分析人工智能高维数据的库。

HiPlot是一个轻量级交互式可视化工具,用来帮助AI研究者发现高维数据中的关联和内在模式,同时采用并行渲染和其他图形化方式来展示信息。

官网的示例:

HiPlot库的一行安装命令如下:

pip install -U hiplot  # Or for conda users: conda install -c conda-forge hiplot

👉 6 Norfair

Norfair是一个轻量级平面物体跟踪Python库。

使用Norfair,你可以仅用几行代码就赋予任何检测算法目标跟踪的能力。

官网的示例:

Norfair库的一行安装命令如下:

pip install norfair

👉 7 GeoPandas

GeoPandas是用来处理地理空间数据的工具库,不仅完美融合了pandas数据类型,还提供了操作地理空间数据的高级接口。

官网的示例:


这个库的安装相对复杂,需要具备以下依赖:

  • numpy
  • pandas (version 1.0 or later)
  • shapely (interface to GEOS; version 1.7 or later)
  • fiona (interface to GDAL; version 1.8 or later)
  • pyproj (interface to PROJ; version 2.6.1 or later)
  • packaging

安装好依赖项后即可运行安装命令,如下:

pip install pygeos

👉 8 PyAutoGUI

PyAutoGUI是一个跨平台GUI自动化Python模块。用于以编程方式控制鼠标和键盘。可以让计算机完成你所设计的自动控制任务,解放你的双手

安装时会自动安装PyAutoGUI依赖的模块,包括PyTweeningPyScreezePyGetWindowPymsgBoxMouseInfo,因此只需一行命令,很方便:

pip install pyautogui

应用时也有很多封装好的API,例如

# 将鼠标光标移动到(200,300)
pyautogui.moveTo(200,300)
# 将鼠标光标移动到(400,500)
pyautogui.moveTo(400,500)

我做了个小示例:

👉 9 Plotly

Plotly是一个交互式的、开源的、基于浏览器的Python图形库,提供了30多种图表类型,包括

  • 科学图表
  • 3D图表
  • 统计图表
  • SVG地图
  • 金融图表

Plotly库的一行安装命令如下:

pip install plotly==5.6.0

需要注意的是plotly是建立在jupyter notebook上的,所以需要在jupyter notebook中导入这两个包,而不能使用VSCode

官网示例:

👉 10 Emoji

Emoji是个很有意思的Python库,事实上Unicode联盟支持一整套表情符号代码,Emoji库就提供了打印表情符号的Python接口,使编程更有趣。

Emoji库的一行安装命令如下:

pip install emoji --upgrade

看看Emoji库打印表情符号的效果:

>> import emoji
>> print(emoji.emojize('Python is :thumbs_up:'))
Python is 👍
>> print(emoji.emojize('Python is :thumbsup:', language='alias'))
Python is 👍
>> print(emoji.demojize('Python is 👍'))
Python is :thumbs_up:
>>> print(emoji.emojize("Python is fun :red_heart:"))
Python is fun ❤

🔥 更多精彩专栏


👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

有关盘点10个冷门Python库,原来Python还能实现这些功能?的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  3. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  7. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  8. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  9. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  10. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

随机推荐