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

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

3天内不再提示

如何使用代码了解数学符号

Wildesbeast 来源:网络整理 作者:闻数起舞 2020-04-06 12:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

当我们用自己喜欢的语言查看求和,阶乘,矩阵等时,它们很简单

Source

对于任何有兴趣从事机器学习和数据科学事业或研究的人来说,是时候超越python库,追随好奇心进入所有数学背后的日子了。 通常,这将带您进入大量公开的论文集,详细说明其工作原理。 您对核心数学的理解越深入,您就越可能一见倾心就创建了一种新方法。 在您遇到类似以下内容之前,第一篇文章上的所有内容似乎都还不错:

对于已经学习数学多年或在机器学习的数学水平上工作的任何人,可以将这样的方程式仔细地解析为含义和代码。 但是对于许多其他人来说,这看起来像象形文字。 事实是,古代数学领袖似乎似乎选择了最有趣的外观符号来描述相当直观的方法。 结果是:方程和变量看起来比实际复杂得多。

我发现代码不仅可以用于编写程序,还可以用于解释复杂性的全球通用语言。 当我学习所有数据科学背后的数学时,我总是发现,获得对数学的普遍理解的最佳方法是编写代码段来描述方程式。 最终,这些符号被理解为几乎可以在典型论文中将其理解为文本。 在本文中,我希望分享一些示例,说明用代码描述数学的简单性!

求和与乘积

求和符号是迭代数学中最有用和最常用的符号之一。 尽管设计复杂,但是实现还是相当简单,但却非常有用。

x = [1, 2, 3, 4, 5, 6]result = 0for i in range(6): result += x[i]Output of print(result) -》 21

如上所示,此符号代表的所有内容都是从顶部的数字开始的for循环,在顶部的数字范围内。 在底部设置的变量将成为索引变量,并且每个循环的所有结果都将添加到总值中。 较不常见的是,可以使用以下方法:

通常称为乘积运算符,该符号以相同的方式起作用,但不是将每个结果相加,而是将它们相乘。

x = [1, 2, 3, 4, 5, 1]result = 1for i in range(6): result *= x[i]Output of print(result) -》 120

阶乘

阶乘是“!” 几乎所有计算器上都存在。 对许多人来说,这可能更明显一些,但是仍然值得编写一些代码以了解其原理。

5! 将表示为:

result = 1for i in range(1,6): result *= iOutput of print(result) -》 120

条件括号

条件括号用于根据一组条件转移方程的流程。 对于编码人员,这只是常见的“ if”语句。 以上条件可以表示为:

i = 3y = [-2, 3, 4, 1]result = 0if i in y: result = sum(y)elif i 》 0: result = 1else: result = 0print(result) -》 6

如上所示,括号中每一行的正确表示法规定了每个路径应执行的操作。 我还将多余的“包含”符号放入每个条件中,以增加更多的见解。 如上所示,我们检查了i值是否在y列表中。 认识到确实如此,我们返回了数组的总和。 如果i值不在数组中,我们将基于该值返回0或1。

点明智和笛卡尔矩阵乘法

最后,我想快速介绍一下任何数据科学家通常通过其喜欢的语言库(矩阵乘法)完成的操作。 最容易理解的形式是逐点操作。 简写为:

请注意,第一个要求是每个矩阵必须具有相同的形状(即#rows =&#Columns =)

此代码如下所示:

y = [[2,1],[4,3]]z = [[1,2],[3,4]]x = [[0,0],[0,0]]for i in range(len(y)): for j in range(len(y[0])): x[i][j] = y[i][j] * z[i][j]print(x) -》 [[2, 2], [12, 12]]

最后,让我们看一下机器学习中最常用的典型矩阵乘法过程。 用复杂的术语来说,此运算将找到每个主要行与每个次要列的点积。 这样做的主要目的是:假设[#rows,#columns]→矩阵ixj要求#columns(i)== #rows(j)→最终产品的形状为[#rows(i), #columns(j)]

这似乎令人困惑,我最好的建议是看一下Google图片,以直观了解这些要求。

该方程的代码如下(使用numpy点方法):

y = [[1,2],[3,4]]z = [[2], [1]]# x has shape [2, 1]x = [[0], [0]]for i in range(len(y)) for j in range(len(z): x[i][j] = np.dot(y[i], z[:, j])print(x) -》 [[4], [10]]

这只是几个示例,但是对这种简单代码的理解可以使任何程序员承担起初不祥的数学世界。 当然,这些方法都可以合并以提高效率,并且通常具有易于使用的库方法。 用简单的代码编写这些代码的目的是查看以真实操作的形式写出它们时的意义。

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

    关注

    30

    文章

    4976

    浏览量

    74380
  • 机器学习
    +关注

    关注

    67

    文章

    8565

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于MoonBit的高效符号计算内核Symbit实现方案

    本文介绍一个以 MoonBit 实现的符号计算内核 Symbit,目标是通过AI辅助,在保留 sympy 风格符号表达与精确计算能力的同时,将大部分算法移植到 MoonBit,利用 native 与 WebAssembly 后端提升执行效率并降低用户访问门槛,理想情况下用
    的头像 发表于 04-24 09:30 315次阅读
    基于MoonBit的高效<b class='flag-5'>符号</b>计算内核Symbit实现方案

    一文了解数据存储演变之路

    开工大吉,启新赋能!数据存储格局正持续快速迭代发展,这背后离不开企业与个人不断增长的数据量驱动。其演变核心在于,从传统存储模式逐步迭代升级,转向更先进、灵活且可扩展的存储解决方案,精准适配现代数字企业及职场多元场景的核心需求。
    的头像 发表于 02-27 13:51 604次阅读
    一文<b class='flag-5'>了解数</b>据存储演变之路

    一文读懂电子元件符号:新手也能轻松识别,避坑不踩雷

    ​ 电子元件符号是电路设计、识图、维修的“通用语言”,无论是画电路图、看 datasheet,还是排查电路故障,精准识别元件符号都是基础。很多新手入门时容易混淆相似符号,甚至看错符号
    的头像 发表于 02-06 14:24 1149次阅读
    一文读懂电子元件<b class='flag-5'>符号</b>:新手也能轻松识别,避坑不踩雷

    学单片机编程对数学英语有要求吗

    1. 单片机是什么? 答:单片机就是一个微型CPU,把程序烧录芯片里面,通过控制不同的外围电路实现不同产品的功能。 2. 学单片机编程对数学英语有要求吗? 答:数学会基本的加减乘除就行,英语会认
    发表于 02-02 06:24

    工控人必备的30个字母符号

    在工业自动化控制领域,符号语言是工程师沟通设备与系统的通用密码。掌握核心符号体系不仅能提升图纸阅读效率,更是故障诊断和系统集成的关键技能。本文将系统梳理30个最具代表性的字母符号及其工程含义,通过
    的头像 发表于 01-17 07:38 1440次阅读
    工控人必备的30个字母<b class='flag-5'>符号</b>

    避繁就简!商汤日日新大模型灵性巧解数学难题,获赞“机器的审美”

    大模型也能拥有某种数学家“直觉”! 在近日举办的第十届世界华人数学家大会“人工智能与数学”夜话活动上,由菲尔兹奖得主丘成桐院士引领,集结国内四大顶尖模型团队,上海人工智能实验室、商汤科技、阿里通义
    的头像 发表于 01-12 11:41 420次阅读
    避繁就简!商汤日日新大模型灵性巧<b class='flag-5'>解数学</b>难题,获赞“机器的审美”

    【乾芯QXS320F开发板试用】基于数学库IQmath定点库的调试

    (Fractional)。例如,Q24格式表示一个32位数,其中最高位是符号位,接着7位是整数部分,剩下24位是小数部分。Q值越高,小数精度越高,但能表示的整数范围就越小。 代码
    发表于 12-08 22:48

    通过优化代码来提高MCU运行效率

    编译器优化 熟悉并合理使用编译器优化选项,如GCC的 -O2, -Os。 -O2:侧重于速度优化。 -Os:侧重于代码大小优化,有时对缓存更友好,反而更快。 将常用函数声明为 inline,减少函数
    发表于 11-12 08:21

    使用Simulink自动生成浮点运算HDL代码(Part 1)

    引言 想要实现浮点运算功能,如果自己写Verilog代码,需要花费较多的时间和精力。好在Simulink HDL Coder工具箱提供了自动代码生成技术。下图展示了HDL Coder如何生成浮点运算
    发表于 10-22 06:48

    【产品介绍】Altair HyperStudy拓扑优化软件

    据挖掘功能的自动化流程,可智能、高效地探索任何系统模型的设计空间。在考虑多物理场约束的同时,引导用户了解数据趋势,进行权衡研究并优化设计性能和可靠性。直观的用户界面
    的头像 发表于 09-19 17:03 715次阅读
    【产品介绍】Altair HyperStudy拓扑优化软件

    rt-thread studio怎么设置才能让char变量是真正的有符号类型?

    最近被一个bug折磨了3天,一路debug进来,发现最终的原因是,定义了一个char变量,但实际上是无符号的(代码期望该变量是有符号的)。 然后我检查了以下编译器如下的设置,发现很奇怪,无论是否勾选
    发表于 09-16 08:23

    TC399中的SCR代码调试,ELF文件中缺少符号怎么解决?

    的任何调试信息 - 似乎没有调试符号,因此,我无法调试 SCR 代码。 您能否告知 Aurix Development Studio 是否提供了允许包含专门针对 SCR 端的调试编译器标志的功能或配置选项? 非常感谢有关启用 SCR 级调试的任何指导。
    发表于 07-21 07:33

    单模光缆型号字母代码及其含义

    。 GJ:通信用室内光缆,适用于室内布线场景。 GH:通信用海底光缆,专为海底通信设计。 GT:通信用特殊光缆,满足特定应用场景的需求。 二、加强构件代码 (无符号):金属加强构件,提供额外的机械强度。 F:非金属加强构件,适用于对电
    的头像 发表于 07-17 10:27 3625次阅读

    Copilot操作指南(一):使用图片生成原理图符号、PCB封装

    “  上周推出支持图片生成模型的华秋发行版之后,得到了很多小伙伴的肯定。但看到更多的回复是:为什么我的 Copilot 无法生成符号?只有普通的文本回复?今天就为大家详细讲解下图片生成符号、封装
    的头像 发表于 07-15 11:14 5270次阅读
    Copilot操作指南(一):使用图片生成原理图<b class='flag-5'>符号</b>、PCB封装

    【微五科技CF5010RBT60开发板试用体验】Cordic数学计算测试

    Cordic数学计算测试本文分享cordic硬件数学计算。 Xprintf.h配置支持浮点打印#define XF_USE_FP1 /* 1: Enable support for floating
    发表于 06-27 23:55