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
    +关注

    关注

    87

    文章

    26424

    浏览量

    264029
  • 人工智能
    +关注

    关注

    1776

    文章

    43824

    浏览量

    230580
  • python
    +关注

    关注

    51

    文章

    4674

    浏览量

    83462
收藏 人收藏

    评论

    相关推荐

    日本大带宽服务器优缺点分析

    日本大带宽服务器是很多用户的选择,那么日本大带宽服务器优缺点都是什么?Rak部落小编为您整理发布日本大带宽服务器优缺点分析。
    的头像 发表于 03-22 10:08 139次阅读

    绕线电阻器的优缺点 线绕电阻的应急代换方法

    绕线电阻器的优缺点 线绕电阻的应急代换方法 绕线电阻器是一种常见的电子元件,具有一系列的优点和缺点。下面将详细讨论绕线电阻器的优缺点,以及线绕电阻的应急代换
    的头像 发表于 03-05 17:06 610次阅读

    电动机调速方式的优缺点

    的调速控制。下面将分别从机械调速和电子调速的优缺点进行详细探讨。 一、机械调速的优缺点 1. 优点: (1)机械调速结构简单,易于理解和操作。机械调速一般采用变速箱、齿轮传动或皮带传动等简单的机械装置来实现调速,具有结构
    的头像 发表于 01-04 11:26 578次阅读

    直流电机的调速方法 调速方法优缺点

    直流电机的调速方法 调速方法优缺点  直流电机是一种广泛应用于工业和家用电器中的电动机,它通过控制电流的大小和方向,实现对转速的精确调控。以下将详细介绍直流电机的调速方法及其
    的头像 发表于 12-21 14:13 2030次阅读

    常见开关电源优缺点对比

    常见开关电源优缺点对比
    的头像 发表于 12-07 15:30 284次阅读
    常见开关电源<b class='flag-5'>优缺点</b>对比

    电阻式触摸屏的原理及优缺点

    电子发烧友网站提供《电阻式触摸屏的原理及优缺点.pdf》资料免费下载
    发表于 10-08 10:16 1次下载
    电阻式触摸屏的原理及<b class='flag-5'>优缺点</b>

    CML型比较器和StrongArm型比较器的优缺点是什么?

    电路所需的比较功能,而不是使用连续的信号来实现。Regeneration型比较器、CML型比较器和StrongArm型比较器是常见的比较器类型,每种类型有其各自的优缺点。在本文中,我们将深入探讨这三种
    的头像 发表于 09-17 17:11 1733次阅读

    igbt的优缺点介绍

    igbt的优缺点介绍 IGBT的优缺点介绍 IGBT是一种晶体管,是MOSFET和BJT集成而成的开关,具有高速开关能力和较低的导通电阻,用于高效率的功率调节。IGBT具有一些优点和缺点,下面将详细
    的头像 发表于 08-25 15:03 4846次阅读

    石墨烯电池的优缺点是什么?

    石墨烯电池的优缺点是什么?  石墨烯是一种具有极高导电性、热导性和物理可塑性的材料,可以被用于制造各种电子设备和材料。石墨烯电池是一种基于石墨烯技术的电池,与传统的电池相比,具有一些独特的优缺点
    的头像 发表于 08-22 17:06 3.3w次阅读

    数字电源和开关电源的优缺点

    数字电源和开关电源的优缺点 数字电源和开关电源是现代电子设备中最常用的两种电源。这两种电源在设计和工作原理上有很大的不同,因此也有不同的优缺点。本文将详细介绍数字电源和开关电源的优缺点。 一、数字
    的头像 发表于 08-18 15:01 1467次阅读

    dcdc电路和ldo电路的优缺点

    进行详尽的探讨。 1. DC-DC电路 DC-DC电路是将输入电源的电压转换为不同电平的输出电压的电路。它们通常具有高电效率和多种输入/输出电压选项,可以满足各种功率需求。以下是DC-DC电路的优缺点: 优点: 1) 电效率高:DC-DC电路采用开关器件和电感器件等元
    的头像 发表于 08-18 15:01 4580次阅读

    开关电源与线性电源的优缺点

    开关电源与线性电源的优缺点 随着科技的不断发展,电源的应用和选用越来越多,而比较常见的开关电源和线性电源则成为了我们不得不区分和选择的两种电源。它们有各自的特点和优缺点,本文将从三个方面分别探讨
    的头像 发表于 08-18 14:06 3887次阅读

    共地和分地的优缺点

    共地与分地并没有硬性规定,可以按需求自己设计。这里归纳一下他们的优缺点。 分地不容易短路。但是地与地与正极与负载之间容易形成电压差。形成奇怪的故障现象。 共地,拥有稳定的二进制表现,即稳定的直流表现
    发表于 06-27 16:48

    双电芯电池的优缺点

    双电芯电池是一种由两个电池单元组成的电池。这种电池通常由两个相同的电池单元并联而成,以提供更高的电压和/或更长的使用时间。与单电池相比,双电芯电池具有许多优点和一些缺点。本文将介绍双电芯电池的优缺点
    的头像 发表于 06-20 17:29 8229次阅读

    航空用电源系统优缺点对比

    目前,航空用电源系统的种类很多。此次,吉事励电源厂家详细介绍了这几种飞机电源系统的基本概况和发展历史,并结合代表机型分析了各自的特点,探讨和比较了各自的优缺点
    的头像 发表于 05-06 17:14 1395次阅读
    航空用电源系统<b class='flag-5'>优缺点</b>对比