身为程序员,我敢和你打赌100块,这个数学符号你根本不会认不会写
写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。这篇文章参考此文,经意译和修改错误代码编写成。更多内容请点进👉我的博客K。👈阅览。
如果你喜欢机器学习和数据科学方面的研究,或者做着相关的工作,总有一天,你一定会想看看你平时经常使用的数学的世界,而不是止步于只会调用Python库。
然后你就会去看很多很多文献,看看那些功能到底是如何运作的。你看的越多、学得越多,你就越有可能想到新的点子💡,然后成为行业大佬,迎娶白富美、走上人生巅峰!想想都很激动。但是当你打开你的第一份文献,纳尼???这是神马?!
如果你在大学学过数学,或者研究过机器学习,你还是能够隐隐约约马马虎虎辨认出来这都是啥,慢慢看还能写成代码。但是对于很多人来说,这是WHAT???话说古时候象形文字都还挺形象挺直观的,这这这也太复杂了吧!
事实上,你想检验你是否真的看懂了这些方程,你可以试试用代码把这方程写出来。最最最厉害的,你还可以用通俗不晦涩的语言把这些玩意儿表达出来。在这篇文章中,分享了一些代码来描述数学符号的例子!往下看吧!
求和、求积符号
求和符号是数学中最有用、最常用的符号之一。它是迭代的符号,尽管它被涉及得复杂,实现却相当简单,而且非常有用。
# Python代码 x = [1, 2, 3, 202be 4, 5, 6] result = 0 for i in range(6): result += x[i] print(result) # 输出为21
像看到的代码那样,求和符号用for循环表示,顶部的数字的范围是
for循环的次数,下面的数字是循环变量。每次循环都把数加到
result中,最后再输出结果。
与求和符号类似的,还有求积符号。
都用了同样的
for循环,只是求和符号是把数加到结果中,而求积符号是把数乘到结果中。看看代码:
# Python代码 x = [1, 2, 3, 4, 5, 1] result = 1 for i in range(6): result *= x[i] print(result) # 输出为120
阶乘
阶乘的符号是
!,它的运用同样十分广泛。那么更应该看看它的实现代码是怎样的。
例如
5!的值是通过
1×2×3×4×5求得,它的代码这样写:
# Python代码 result = 1 for i in range(1,6): result *= i print(result) # 输出为120
分段函数
分段函数可以根据后面的条件,知道哪个变量该使用哪个表达式。对于程序员来说,
if条件分支语句,可以很方便的实现这个功能:
# Python代码 i = 3 y = [-2, 3, 4, 1] result = 0 if i in y: result = sum(y) elif i > 0: result = 1 else: result = 0 print(result) # 输出为6
如上所示,括号中每一行的正确表示法指示了每条路径应该执行的内容。我将额外的“包含”符号添加到每个条件中,以增加更多的洞察力。如前所述,我们检查了i值是否在y列表中。认识到这一点后,我们返回了数组的和。如果i值不在数组中,我们将根据该值返回0或1。
每一行的表达式,都有唯一的条件来约束,符合条件才能执行对应的表达式。看看第三条语句,条件是
y包含i,所以在用代码实现时,我们用
in来检查
i是否在
y数组中。如果
i不在
y数组中,则
i in y这条语句的值是
false,否则是
true。
看到这里,哦?简单?继续看下面!
矩阵的点乘和叉乘
最后介绍一下数据科学家最常用最喜欢——矩阵的乘法。最容易理解的形式是点乘运算。每行每列对应的元素相乘:
注意两个矩阵的行数相同、列数相同。
代码这样写:
# Python代码 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]]
最后看看典型的矩阵乘法过程----叉乘,在机器学习中最常用。第一个矩阵的每行的各元素,乘上第二个矩阵的每列的各元素,再把各个积相加,作为结果矩阵相应位置的元素。说起来很难懂,建议去看看动图,就一目了然了。
代码如下,使用numpy点方法:
# Python代码 y = [[1, 2], [3, 4]] z = [[2], [1]] x = [[0], [0]] for i in range(len(y[0])): sum = 0 for j in range(len(z)): x[i][0] += y[i][j] * z[j][0] print(x) # 输出为[[4], [10]]
这只是几个例子。当然,为了提高效率,可以组合使用这些方法,并且通常有一个现成的库。但是对这些代码的理解可以让程序员更深刻得了解数学公式。
- 软件测试常见的面试题
- mybatis面试题
- MyBatis面试题库
- MyBatis常见的概念性面试题目
- mybatis面试题
- Mybatis概念面试题汇总
- Mybatis面试题
- 史上最全MyBatis面试题目
- MyBatis常见的概念性面试题汇总
- MyBatis-延迟加载与MyBatis缓存(面试题)
- 职场菜鸟捕食指北【初入职场篇】
- 想转行做程序员?转行不难,难的是以后不后悔。
- 看这一篇就够了:写简历、面试、谈薪酬的技巧和防坑指南
- 阿里巴巴/招行信用卡中心21届实习面试知识点汇总
- 面试常考算法整理
- 面试华为,80%会考的技术题有哪些?
- 3年小厂逆袭BATJ高级工程师面试总结
- 美团面试题详解之一
- 腾讯面试题-23
- 听我讲完GET、POST原理,面试官给我倒了杯卡布奇诺