python numpy 矩阵乘法以及列向量与行向量乘法 | 您所在的位置:网站首页 › python数组乘以常数结果 › python numpy 矩阵乘法以及列向量与行向量乘法 |
最近在熟悉python的科学计算,对于numpy的矩阵运算进行一些总结,和matlab还是很不一样的 import numpy as np 1、矩阵乘法 np.dot(a,b),但a,b都为一维矩阵的时候,.dot实现内积,不用考虑a,b具体是行向量还是列向量,也就是说,a,b同为行向量仍然可以计算 a.dot(b) a@b 2、各个元素相乘 a*b 但当a,b分别为行向量和列向量时,返回矩阵,不管a,b谁在前边都是一样的结果 np.multiply(a,b),但当a,b分别为行向量和列向量时,.multiply返回矩阵,不管a,b谁在前边都是一样的结果 3、行向量变列向量 a = np.array([1,2,3]) b=np.transpose([a]) 修改b,不会对a进行修改 b = np.array([a]).T 修改b,不会对a进行修改
b = a.reshape(-1,1) 修改b,同时会对a进行修改 b = a[:,np.newaxis] 修改b,同时会对a进行修改 b=a.reshape(len(a),-1), 修改b,同时会对a进行修改 b=a[:,None]. 修改b,同时会对a进行修改 3.1、列向量变行向量 a = np.array([[2],[5],[8]]) b = np.transpose(a) 修改b,会对a进行修改 4、列向量b乘以行向量a np.multiply(a,b) np.multiply(b,a) a*b b*a np.outer(a,b) np.outer(b,a) b@a会报错 5、行向量a乘以列向量b a@b
6、需要注意 对矩阵或向量a:a[0]指的是第0行, 所以,对列向量a可以用a[0],a[1]来表示第0,1个元素,但是对行向量a必须用a[:,n]来表示第n个元素,如果对a[0]进行赋值,则是对整个行向量赋值。
参考:http://www.itkeyword.com/doc/7498360611061724524/numpy-scalar-multiplication-of-column-vector-times-row-vector https://docs.scipy.org/doc/numpy/user/quickstart.html https://www.cnblogs.com/bob-dong/p/6207871.html |
CopyRight 2018-2019 实验室设备网 版权所有 |