python:@运算符(numpy库中的运算符)

你们的每个赞都能让我开心好几天✿✿ヽ(°▽°)ノ✿

前言

我在《python数学实验与建模》这本书中发现了@运算符,这可真是个奇怪的符号!我大量的尝试与查资料后,终于揭开这个@的意义


一、@运算符

1.仅仅支持数组运算

因此,必须用到numpy.array()才能使用这个运算符

2.这是python3.5后的新运算符

它与numpy.dot()的作用是一样的,矩阵乘法(就是线性代数里学的)!
举个例子:

from numpy import array,dot
a=array([[1,2],
        [1,2]])
b=array([[5,6],
        [5,6]])
print(a@b)
print(dot(a,b))

结果是:

[[15 18]
 [15 18]]
[[15 18]
 [15 18]]

说明了这两种运算方法是一样的

二、注意事项

1.矩阵@向量

这是个特殊情况,我在这卡了挺久的。如果第二个位置放的是向量(向量可以看作是1行n列的矩阵)的话,那么向量会转置!
举个例子:

from numpy import array,dot
f=array([1,2])#1*2
g=array([[1,2],
         [1,2],
         [1,2]])
#print(f@g)#好像并不能自动转置
print(g@f)#草,我懂了,f看做向量,如果把f放在第二位,会自动转置
print(dot(g,f))

结果:

[5 5 5]
[5 5 5]

由于向量转置了,因此可以相乘。注意结果还是向量

你们的每个赞都能让我开心好几天✿✿ヽ(°▽°)ノ✿

你可能感兴趣的:(笔记,python,数学建模)