0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探讨Python的优缺点及入门方法

星星科技指导员 来源:嵌入式计算设计 作者:Stephen Cassar 2022-06-20 16:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python 今年 30 岁了,但你不会知道。根据 2019 年 Stack Overflow 调查,高级动态编程语言仍然是增长最快的主要编程语言,超过了 Java,并且是人工智能开发人员最想要的语言。2021 年 1 月,Python 创纪录地第四次获得 TIOBE 年度最受欢迎编程语言奖。该奖项授予一年内最受欢迎的编程语言。

这就引出了一个问题:为什么有这么多开发人员可以从 500 多种语言中进行选择,而且每年都会编写更多的语言?答案可能在于 Python 的简单性。

许多语言都承诺学习曲线短而平坦,但今天的开发人员需要更大的灵活性。当他们尝试不同的堆栈和技术时,他们很快意识到 Python 几乎可以轻松完成所有他们需要的事情。这部分是因为与其他语言相比它使用起来多么容易。一个初出茅庐的开发人员可以在几分钟内构建和运行一个简单的 Hello World Python 应用程序。但通常达成交易的是该语言的内置灵活性,它支持多种编程范式,并且能够以更少的工作量进行开发。

Python 从一开始只是一种便于简单任务编程、自动化脚本和快速应用程序原型设计的工具,现已上升到一流语言的地位。例如,Instagram 最近在语言上加倍下注,选择在 10 个月内分三个阶段将其核心堆栈升级到 Python 3,尽管其母公司 Facebook 严重依赖 PHP:超文本预处理器 (PHP) 的核心架构。经过分析,Instagram 简单地确定 PHP 在性能方面没有显着优势,尤其是随着该语言的每个新版本都在不断提高速度。也可能是 Python 的人工智能和机器学习能力是一个考虑因素。

微软似乎也认识到 Python 的重要性。2020 年 11 月 12 日,创建 Python 的荷兰程序员 Guido Van Rossum 宣布他即将退休,加入微软的开发人员部门。其他依赖 Python 的公司包括亚马逊、工业光魔、Netflix、Reddit、谷歌和 Spotify。由于诸如此类的重击者推动了全球对 Python 开发人员的需求,它不会很快消失,因此每个开发人员都考虑将 Python 添加到武器库中是有意义的。

复杂世界的简单解决方案

开发团队尝试使用最新技术构建复杂系统只是为了中途放弃他们的努力并返回到更简单的编程语言(如 C++ 或 Python)并不是闻所未闻的。有时,需要的是大型柴油发动机,而不是花里胡哨的双涡轮增压 4 缸,如果你能在规划阶段弄清楚这一点,它可以为每个参与者节省很多心痛,时间,还有钱。

人工智能的兴起让开发人员利用 Python 在数据科学、数据分析等方面的潜力。Python 的子集机器学习和深度学习 (DL) 是最简单的语言如何解决最初创建程序时不存在的问题的绝佳示例。

聪明的开发人员会为每个问题找到最简单的解决方案,无论它最初看起来多么复杂。

pYYBAGKwMjyAALljAAHt86Odwjo162.png

亚马逊采用了这种方法,并将赌注押在 Python 的机器学习能力上,选择它作为其 DeepLens 设备库的核心。Python 看到了简化机器学习任务的真正需要,这些任务通常需要实现高维数据和手动流程。

Python 的强大功能极大地简化了图像识别、特征提取和对象检测等任务。这使 AWS DeepLens 项目能够使用神经网络通过计算机视觉项目、教程和动手探索使用开发人员可以触摸和感觉的物理设备(例如 AWS DeepLens 相机)进行学习和预测。

AWS DeepLens 的设备库由一组不同的 Python 模块组成,这些模块公开对象和各种设备操作方法。结果是深度学习模型可以在相机上本地运行,以分析并对其所看到的内容采取行动。即使您从未打算在生产中使用该平台,也可以拿起其中一台相机并探索模块。尝试使用诸如此类的工具可以帮助开发人员磨练他们的手艺。

为什么Python Excel?

Python 是数据分析和数字运算的理想选择,这解释了为什么大多数涉及 ML 和数据科学的库都有 Python 接口。但是 Python 不仅仅是开始学习这些学科的好方法。开发人员可以选择采用最适合他们需求的范式:函数式、命令式、面向对象、结构化或反射式。Python 支持所有五个。

Python 在简化复杂性方面处于最佳状态。例如,在处理数字时,Python 擅长极快并且可以使用复杂的数学。它还具有简单的语法来实现诸如两个字符串相加之类的基本计算,一直到构建具有其固有复杂性的 ML 模型。

简单也意味着用户编写更少的代码。Python 支持预定义的包,实际上消除了算法编码。对于需要的代码,理解、更改、复制和共享都大大简化了。这有助于 Python 开发人员社区通过免费和高效的算法、想法和工具交流而蓬勃发展。

Python 很灵活。Python 提供了选择面向对象编程 (OOP) 或脚本的选项,它可以在多个平台上运行,包括 Windows、macOS、Linux 和 Unix。使用 PyInstaller 将代码从一个平台移植到另一个平台。

Python 有大量的社区、组和论坛,程序员可以在其中帮助解决问题。许多资源可供初学者和专业人士使用,因此您永远不会孤单。数百个预建库也可用于实现 ML 和 DL 算法。安装包通常只需要一个命令。

免费、简单和开源,Python 已进入一些最复杂的技术,并被行业巨头、开发人员、数据科学家、ML 工程师和初学者等使用。

流行的 Python 库

一门优秀的语言需要大量的库选择才能茁壮成长,这也是 Python 成为人工智能最流行的编程语言的主要原因之一。Python 库模块包含基本级别的项目,无需每次都对其进行编码。

例如,NumPy 有助于高效管理多维数组,并具有出色的随机功能。它还包含用于集成 C/C++ 和 Fortran 代码的工具。Pandas 帮助处理 Python 中的二维数据表。尽管 SQL 也这样做,但 Pandas 更容易在代码中执行。仅这两个库就可以节省开发人员的时间。

Matplotlib 虽然不是最容易使用的,但将为开发人员节省大约六个可重复使用的基本折线图和散点图的代码块。使用 Matplotlib 可以非常快速地创建图表、直方图和绘图,以便更好地理解数据、有效呈现和可视化。

Scikit-Learn 是 Python 程序员应该用于 AI /ML 的第一个库。它处理回归方法、分类方法和聚类、模型验证和模型选择,并使降维和特征提取变得轻而易举。转向更高级的,Scipy(不要与 Scipy 堆栈混淆)为集成、插值和优化等复杂的机器学习过程提供核心数学方法。Scikit-Learn 严重依赖 Scipy 库,因此将其移至列表顶部。

使用 Python 创建快速、干净的原型

创建原型通常需要数小时的编译、调试、编辑、重新编译、调试……你懂的。Python 是原型设计的理想选择,因为它只允许编写和测试几行代码,而无需编译或使用 Makefile。它是高级别的,因此内存管理或垃圾收集等低级细节不是问题。

开始使用模块并从那里构建。存在许多简单且有据可查的 Python 模块。该语言非常流行,用户如此之多,以至于一个小组中的几个人可能会阅读您的代码并帮助您将其完成。因为您的 Python 项目也将在大多数平台上运行,所以开发人员不需要分支代码或维护单独的存储库。

值得探索的 Python 工具

使用库可以帮助显着加快开发速度。很有可能,有人已经编写了所需的功能。开发人员可以将 Python 的内置成像库或 MayaVi 和 VTK 3D 可视化工具包用于科学和数字应用程序。或者,开发人员可以考虑将 ScientificPython 和 Numeric Python 用于数值和科学应用程序。

很有可能,有一个库可以帮助开发人员快速跟踪项目。以下是值得探索的五个社区最爱的列表。

Selenium 构成了无数浏览器自动化工具、应用程序编程接口 (API) 和框架的核心技术。它使 Web 应用程序自动化以进行测试。Selenium 使数据抓取项目更容易,并且通常将复杂的例程减少到几行代码。

Gooey 只需几行代码即可将 Python 命令行程序转变为具有图形用户界面的成熟应用程序,从而使共享工具变得更加容易,无论技能水平如何。Gooey 还提供简单的日期和时间输入。

Pyinstaller 使用传输压缩创建小型、高效、独立的可执行文件。它是多平台的,极大地简化了可执行文件的创建。

PYNQ(Zynq 的 Python 生产力)利用 Xilinx 器件在应用中的优势,无需使用 ASIC 风格的设计工具来设计可编程逻辑电路。

英特尔 Python 分发版可加速 Python 并加速计算包。它使开发人员可以创建和加速可扩展的应用程序和服务,释放现代硬件的力量,并轻松实现算法。

Python 的局限性

引用一位系统架构师朋友的话:“项目的完美语言就是项目的完美语言。”

我们已经讨论了 Python 的许多优势,尤其是在数据科学和脚本领域的数字运算方面。但是没有一种语言对所有应用程序都是完美的,Python 也不例外。了解 Python 的局限性将有助于开发人员更好地确定它是否适合他们的项目。Python 在性能、应用程序打包和项目管理方面受到影响,总结了它的局限性。其他缺点包括:

Python 是一种高级语言。因为它比低级语言更远离硬件,所以速度较慢。

Python 不适合移动开发。

Python 使用灵活的数据类型,无法将其用于内存密集型任务。

高内存消耗。

Python 的数据库访问层是原始的。对于需要复杂遗留数据平滑交互的企业来说,这不是一个好的选择。

因为 Python 是动态类型的,所以它需要更多的测试并且只有在运行时才会出现错误。

尽管每种方法都可以采用优雅的解决方法,但对于依赖于读取和操作任务关键型应用程序的遗留数据的移动开发或企业而言,Python 通常不是正确的选择。

开始你的第一个 Python 项目

任何语言的入门都需要时间,虽然 Python 很容易上手,但建议初学者参考尽可能多的资源。要加入的一个学习资源是 PythonistaCafe,一个点对点学习社区。这个仅限邀请的小组提供了大量专门针对 Python 的练习、活动和聚会,所有这些都在随处可见的最佳运行环境之一中进行。

请务必查看尝试解决特定问题的项目。以下是要查看的开源项目的简短列表:

OpenCog 正在创建具有人类能力的人工智能 (AGI) 项目。它用于 SingularityNET 项目和 Hanson Robotics 项目,为 Sophia 和其他机器人提供智能。

人工智能研究所(不来梅大学计算机科学学院的一部分)研究人工智能并举办旨在推进人工智能技术的研讨会和活动。他们致力于支持现有的人工智能项目和教育。

Zulip 被称为“世界上最高效的团队聊天”,每天可以处理数千条实时消息。Zulip 为团队提供了清晰的组织、异步通信和其他巨大优势。

Magenta 是一个 Python 库和研究项目。它的目标是使用人工智能来创作音乐和艺术。它可以创建图像、歌曲,甚至生成绘图,使艺术家能够探索新的创作方式。

MailPile 是一个创新的电子邮件客户端,专注于安全和私密的通信。它速度快,没有广告,并带有强大的搜索功能、隐私和加密功能。

概括

开发人员学习新语言的三个主要原因:

因为他们必须:也许与您合作的开发团队决定用 Python 构建一些东西,或者您正在申请的工作需要有 Python 经验的开发人员。

为了好玩:如果你感到无聊或只是想尝试 AI、ML 或 DL,Python 会叫你的名字。

解决问题:也许您在项目中使用的语言遇到了障碍。Python 可能值得一试。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    91

    文章

    42722

    浏览量

    303589
  • 人工智能
    +关注

    关注

    1822

    文章

    50637

    浏览量

    268353
  • python
    +关注

    关注

    60

    文章

    4896

    浏览量

    90597
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    变频器矢量控制和DTC各有什么优缺点?各适用什么工作场合?

    大力矩。 以下是它们的核心区别与适用场景分析: 矢量控制 vs. 直接转矩控制:核心优缺点对比 特性维度 矢量控制 (VC) 直接转矩控制 (DTC) 核心原理 模拟直流电机控制,通过复杂坐标变换,将定子电流分解为励磁和转矩分量,进行独立、连续的调节。 在
    的头像 发表于 04-28 15:40 327次阅读

    降压稳压器中展频实现方法优缺点

    本期为大家带来的是《降压稳压器中展频实现方法优缺点》,本文介绍芯片设计人员在降压转换器中实现展频时所采用的流程,以及如何将这一方法扩展到其他系统。此外还将介绍常见的现代展频实现方法
    的头像 发表于 04-22 14:32 8559次阅读
    降压稳压器中展频实现<b class='flag-5'>方法</b>的<b class='flag-5'>优缺点</b>

    使用PYTHON进行的跨平台仿真

    快速物理光学软件VirtualLab Fusion以其“连接场求解器”方法而自豪,该方法将应用于不同组件上的专用电磁场求解器结合在一起,以实现整个系统的物理光学模拟。这种方法的逻辑扩展不仅是连接软件
    发表于 04-02 08:21

    如何在 VisionFive 上使用 Python 包?

    确保执行以下步骤: 将 Fedora OS 刷新到 Micro-SD 卡中,如将 Fedora OS 刷新到 Micro-SD 卡部分中的VisionFive 单板计算机快速入门指南. 登录
    发表于 03-30 08:28

    三防漆稀释剂替代品对比:优缺点+环保选择 |铬锐特实业

    铬锐特实业|东莞厂家|三防漆稀释剂能用什么替代?本文对比原装稀释剂、环保无苯型、醋酸丁酯、PMA等常见替代品的优缺点、成本与性能影响,附行业数据和选择建议,助您兼顾品质与成本。
    的头像 发表于 02-26 00:12 552次阅读
    三防漆稀释剂替代品对比:<b class='flag-5'>优缺点</b>+环保选择 |铬锐特实业

    电磁流量计优缺点的详细介绍

    电磁流量计是基于法拉第电磁感应定律测量导电液体体积流量的仪表,广泛应用于水处理、化工、制药、食品饮料、造纸、冶金等行业。以下是电磁流量计的优缺点的详细介绍,供参考: 一、电磁流量计的优点 1.无压损
    的头像 发表于 01-06 10:22 1327次阅读

    电能质量在线监测装置测温功能的无线通信方式的优缺点有哪些?

    电能质量在线监测装置测温功能的无线通信方式,可按 短距无线、长距低功耗广域 (LPWAN)、广域蜂窝通信 三大类分别分析优缺点,不同方式适配不同场景,其优势与局限高度关联自身技术特性,具体如下: 一
    的头像 发表于 12-10 11:51 1018次阅读
    电能质量在线监测装置测温功能的无线通信方式的<b class='flag-5'>优缺点</b>有哪些?

    对比分析电能质量在线监测装置支持的断点续传文件传输协议的优缺点

    优缺点对比分析: 一、各协议优缺点逐一拆解 1. FTP(文件传输协议) 优点 断点续传机制成熟 :依托REST命令可精准定位字节偏移量,支持大文件分块续传,且内置 CRC 校验保障数据完整性,是装置的基础标配功能,适配性强。 传输效率高 :无加密运算损耗,传输速率
    的头像 发表于 12-05 17:49 3880次阅读
    对比分析电能质量在线监测装置支持的断点续传文件传输协议的<b class='flag-5'>优缺点</b>

    UV三防漆的优缺点大起底!是效率神器还是局限陷阱?

     UV三防漆以其“秒干”的黑科技闻名于电子制造圈,但它真的是完美无缺的吗?任何材料的选择都是一场权衡。本文将彻底剖析UV三防漆的优缺点,帮助您精准判断:它究竟是提升您生产效率的利器,还是可能带来麻烦的“娇气”选手?
    的头像 发表于 11-15 17:22 738次阅读
    UV三防漆的<b class='flag-5'>优缺点</b>大起底!是效率神器还是局限陷阱?

    工业级SLC SD NAND存储的优缺点

    工业级 SLC 存储卡与存储芯片的优缺点: ​ 核心特点与适用场景 ​ ​ 可靠性与寿命 ​:SLC(单层单元)每单元仅存1 bit,典型P/E 擦写寿命约 10 万次,远高于 MLC/TLC,适合
    的头像 发表于 10-17 11:09 1064次阅读
    工业级SLC SD NAND存储的<b class='flag-5'>优缺点</b>

    不同类型的自动化工具在评估数据缓存效果时有哪些优缺点

    在评估数据缓存效果时,不同类型的自动化工具(实时监控类、性能测试类、深度分析类、云原生专属类)因设计目标和技术特性不同,存在显著的优缺点差异。以下结合工具类型与具体场景,系统对比其核心优劣势,并给出
    的头像 发表于 09-25 17:48 947次阅读
    不同类型的自动化工具在评估数据缓存效果时有哪些<b class='flag-5'>优缺点</b>?

    无线局域网的优缺点和使用要点

    近年来,无线局域网 已普遍应用于我们生活的方方面面。本文将介绍无线局域网的基础知识、优缺点、与 Wi-Fi 及有线局域网的区别,以及有效使用的要点。全球领先的短距离无线模块供应商 KAGA FEI
    的头像 发表于 08-14 16:04 3698次阅读
    无线局域网的<b class='flag-5'>优缺点</b>和使用要点

    超级电容对比锂电池的优缺点

    本文探讨了超级电容和锂电池在储能领域的优缺点。超级电容以高能量密度著称,但充电速度较慢;锂电池则具有快充和寿命长的优势,但成本较高。在新能源汽车和电网调频等高频次应用中,两者可以互补。
    的头像 发表于 06-30 09:37 3313次阅读
    超级电容对比锂电池的<b class='flag-5'>优缺点</b>

    微电机轴球面成型加工方法探讨

    摘要:微电机轴端设计成R球面是减小电机振动和噪声的一种重要方法。为了提高微电机轴端R球面的加工效率,从微电机轴端R球面加工的相对运动关系人手,对微电机轴球面的磨削成型方法进行探讨,分析嵌件轮、工件
    发表于 06-24 14:07

    商业云手机核心优缺点分析

    商业云手机核心优缺点分析,综合技术性能、成本效率及场景适配性等多维度对比: 核心优势‌ 成本革命‌ 硬件零投入‌:免除实体手机采购(旗舰机均价6000元),企业百台规模可省60万+ CAPEX
    的头像 发表于 06-16 08:11 1342次阅读
    商业云手机核心<b class='flag-5'>优缺点</b>分析