原生List不支持乘积运算,而使用for 运算与列表表达式运算效率太低
%%timeit(自动循环多次取最快的运算时间取均值)和%%time(只运行一次)可以查看时间效率,%支持单行,%%支持多行
numpy支持*运算
numpy把一维数组当成向量,把二维数组当成矩阵,支持向量和矩阵的运算,并进行了很好的优化
/普通除法,结果为浮点数,//整除,取整数部分
#矩阵与矩阵之间的运算(行列对应)
乘法特殊
矩阵乘法注意
k*m 与m*n的矩阵得到k*n的矩阵前一个的列与后一个的行要一致
#矩阵的转置
行变成列,列变成行
A.T
向量和矩阵之间的运算
先将向量堆叠成和矩阵相应的shape再运算
A二维矩阵,v一维向量
使用np.vstack堆叠或使用tile方法(第一个参数传入堆叠的对象,第二个参数传入元组,行列依次堆叠几次)
而直接v+A也是将向量与矩阵的每行进行加法运算,数与向量做加法即与向量的每个坐标值进行加法运算
结果相同
#向量与矩阵之间的乘法
v是1*2的向量,A是2*2的矩阵相乘dot方法:
v.dot(A) 看成1*2的行向量阵v 与 2*2的矩阵A 进行矩阵间的乘法运算,结果行向量
A.dot(v) 看成2*2 的矩阵A 与 2*1 的 列向量v 进行乘法运算 ,需要时Numpy会自动地把向量当成列向量,结果为列向量
前一个的行乘后一个额列