身为程序员,我敢和你打赌100块,这个数学符号你根本不会认不会写

写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。这篇文章参考此文,经意译和修改错误代码编写成。更多内容请点进👉我的博客K。👈阅览。

如果你喜欢机器学习和数据科学方面的研究,或者做着相关的工作,总有一天,你一定会想看看你平时经常使用的数学的世界,而不是止步于只会调用Python库。

然后你就会去看很多很多文献,看看那些功能到底是如何运作的。你看的越多、学得越多,你就越有可能想到新的点子💡,然后成为行业大佬,迎娶白富美、走上人生巅峰!想想都很激动。但是当你打开你的第一份文献,纳尼???这是神马?!

第一个数学公式
如果你在大学学过数学,或者研究过机器学习,你还是能够隐隐约约马马虎虎辨认出来这都是啥,慢慢看还能写成代码。但是对于很多人来说,这是WHAT???话说古时候象形文字都还挺形象挺直观的,这这这也太复杂了吧!

含泪微信表情包

事实上,你想检验你是否真的看懂了这些方程,你可以试试用代码把这方程写出来。最最最厉害的,你还可以用通俗不晦涩的语言把这些玩意儿表达出来。在这篇文章中,分享了一些代码来描述数学符号的例子!往下看吧!

求和、求积符号

求和符号

求和符号是数学中最有用、最常用的符号之一。它是迭代的符号,尽管它被涉及得复杂,实现却相当简单,而且非常有用。

# Python代码
x = [1, 2, 3, 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]]

这只是几个例子。当然,为了提高效率,可以组合使用这些方法,并且通常有一个现成的库。但是对这些代码的理解可以让程序员更深刻得了解数学公式。

评论 246
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AK°

佛系接受打赏????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值