python函数- exp、np.linalg.norm、np.multiply()、np.dot()、*、outer()、squeeze

本文详细介绍了Python中与数学运算相关的函数,包括math.exp()、np.linalg.norm()用于求范数、np.multiply()和np.dot()以及星号(*)乘法运算的区别、outer()函数以及np.squeeze()删除单维维度的用法。通过实例展示了这些函数在数组和矩阵运算中的应用。

1. exp()

math.exp()的参数必须是一个实数
numpy.exp()参数可以是一个向量

2. np.linalg.norm(求范数)

x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False)
参数:
x:矩阵或向量
ord:范数类型,常用为1和2,也可以为负数
axis:处理方式
– axis=1表示按行向量处理,求多个行向量的范数
– axis=0表示按列向量处理,求多个列向量的范数
– axis=None表示矩阵范数
keepding:是否保持矩阵的二维特性
– True表示保持矩阵的二维特性,False相反
这里写图片描述
这里写图片描述

3. np.multiply()、np.dot()和星号(*)、outer()的区别

(1) np.multiply()函数

数组和矩阵对应位置相乘,输出与输入数组/矩阵的大小一致。
两个数组运算,结果为一个数组,两个矩阵运算,结果为一个矩阵。
数组:

A=array([[1, 2],
         [3, 4]])
B=array([[0, 1],
         [2, 3]])
np.multiply(A,B) =array([[ 0,  2],
                         [ 6, 12]])    

矩阵:

np.multiply(np.mat(A),np.mat(B))=matrix([[ 0,  2],
                                         [ 6, 12]])  

(2) np.dot() –矩阵乘法

对于秩为1的数组,执行对应位置相乘,然后再相加,得一个实数;
对于秩不为1的二维数组,执行矩阵乘法运算;超过二维的可以参考numpy库介绍。
数组:

A=array([[1, 2],
         [3, 4]])
B=array([[0, 1],
         [2, 3]])
np.dot(A,B) =array([[ 4,  7],
                    [ 8, 15]])   

矩阵:

np.dot(np.mat(A),np.mat(B))=matrix([[ 4,  7],
                                    [ 8, 15]])           

if x=[x1,x2,…,xn] then np.dot(x,x) = ni=0x2i∑i=0nxi2 .

(3)星号(*)乘法运算

对数组执行对应位置相乘
对矩阵执行矩阵乘法运算
数组:

A=array([[1, 2],
         [3, 4]])
B=array([[0, 1],
         [2, 3]])
A*B = array([[ 0,  2],
             [ 6, 12]])         

矩阵:

(np.mat(A))*(np.mat(B))=matrix([[ 4,  7],
                                [ 8, 15]])

(4)outer()

计算两个向量的outer

Given two vectors, a = [a0, a1, ..., aM] and b = [b0, b1, ..., bN],
the outer product is:

[[a0*b0  a0*b1 ... a0*bN ]
 [a1*b0    .
 [ ...          .
 [aM*b0            aM*bN ]]

第一个参数表示倍数,使得第二个向量每次变为几倍

4. np.squeeze()

删掉为1的维度

A = np.array([[[0], [1], [2]]])
print(A.shape)   #(1, 3, 1)
A = np.squeeze(A)
print(A.shape)  #(3,)

5.

A trick when you want to flatten a matrix X of shape (a,b,c,d) to a matrix X_flatten of shape (b ∗ c ∗ d, a) is to use:
X_flatten = X.reshape(X.shape[0], -1).T # X.T is the transpose of X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值