翻译:老齐数组
与本文相关图书推荐:《跟老齐学Python:数据分析》bash
在机器学习项目中,你确定要在代码中实现各类运算,其中必然要用到各类数学符号,所以,必须了解并熟知如何实现。markdown
本文列出经常使用的数学符号及其Python实现方法,一旦用到,就能够直接拷贝。机器学习
这个符号用于表示向量中第几个值。函数
x = [10, 20, 30] i = 0 print(x[i]) # 10 复制代码
还能够拓展到2维向量,乃至更多维度。oop
x = [ [10, 20, 30], [40, 50, 60] ] i = 0 j = 1 print(x[i][j]) # 20 复制代码
这个符号的意思是对某一范围内的向量中的元素求和,上下标为范围。它等同于Python中对向量的索引从0到N-1进行循环,注意,如何用前面的符号获得每一个值得索引。学习
x = [1, 2, 3, 4, 5] result = 0 N = len(x) for i in range(N): result = result + x[i] print(result) 复制代码
上面的代码能够用内置函数简化:spa
x = [1, 2, 3, 4, 5]
result = sum(x)
复制代码
这个符号的意思是将向量中指定范围的元素求乘积(读做:pi,即字母π的大写形式),Python中的实现方法就是循环获得元素,而后计算乘积。翻译
x = [1, 2, 3, 4, 5] result = 1 N = len(x) for i in range(N): result = result * x[i] print(result) 复制代码
管道符(键盘上的竖线)有多种不一样的含义,要具体看它的应用方式。code
做为绝对值符号,返回该数值的绝对值。
x = 10 y = -20 abs(x) # 10 abs(y) # 20 复制代码
范数,也称为向量的模(长),即向量的大小。Python中经过计算数组中每一个值的平方和再开方获得。
x = [1, 2, 3]
math.sqrt(x[0]**2 + x[1]**2 + x[2]**2)
复制代码
这是一个希腊字母(读如:[ˈepsɪlɑːn]
),它用于检验某个元素是否是集合的一员,在Python中,用下面的方式实现:
X = {1, 2, 3} 3 in X 复制代码
这个符号表示函数中的X与Y的对应关系,Python中就是编写一个函数,X为参数,输出Y。
def f(X): Y = ... return Y 复制代码
有时候你也会遇到下面的表述方式,用R替代X、Y:
R意味着输入输出都是实数,好比整数、浮点数、无理数、有理数等。Python中固然能够表示:
x = 1
y = 2.5
z = math.pi
复制代码
还有可能遇到下面的形式:
意味着实数组成的d维度向量(译者注:实数域的d维子空间)。
假设d=2,Python中能够用Numpy提供的函数,例以下面代码中的求和函数,返回的是一个数值,它实现了 到
的映射
X = [1, 2]
f = np.sum
Y = f(X)
复制代码
译者注: 严格来说,本文上面的示例不很准确。[[1], [2]]
,这样的才是严格的2维。
这个符号表示的是行列转换,Python中用下面方法实现:
X = [[1, 2, 3],
[4, 5, 6]]
np.transpose(X)
复制代码
输出结果显示行列交换了位置。
[[1, 4],
[2, 5],
[3, 6]]
复制代码
张量间的乘法,在Python中用np.multiply
实现:
x = [[1, 2],
[3, 4]]
y = [[2, 2],
[2, 2]]
z = np.multiply(x, y)
复制代码
输出是:
[[2, 4]],
[[6, 8]]
复制代码
点积的结果是每一个序列中对应数字积的和。
X = [1, 2, 3] Y = [4, 5, 6] dot = sum([i*j for i, j in zip(X, Y)]) # 1*4 + 2*5 + 3*6 # 32 复制代码
向量上有一个小帽子的符号,表示的是向量中的每一个份量除以向量的长度。
x = [1, 2, 3] length = math.sqrt(sum([e**2 for e in x])) x_hat = [e/length for e in x] 复制代码
如此所得向量的大小就是1,而且方向不变。
math.sqrt(sum([e**2 for e in x_hat])) # 1.0 复制代码
用感叹号表示阶乘,即从1开始,一直到该数字的全部整数的乘积,在Python中,这样计算:
x = 5 fact = 1 for i in range(x, 0, -1): fact = fact * i print(fact) 复制代码
也能够用内置模块中的函数实现:
import math
math.factorial(x)
复制代码
输出是:
# 5*4*3*2*1 120 复制代码
原文连接:amitness.com/2019/08/mat…
搜索技术问答的公众号:老齐教室
在公众号中回复:老齐,可查看全部文章、书籍、课程。