python——numpy.dot()和numpy.inner()之间的区别

这篇博客探讨了NumPy中np.inner和np.dot函数在处理一维、二维及三维数据时的不同。对于一维数据,两者结果相同,但二维数据时,np.inner执行的是矩阵内积,而np.dot进行矩阵乘法。在三维数据上,np.inner的运算方式类似,按对应元素相乘然后求和。文章通过实例解释了运算规则,并展示了计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个函数对于一维数据来说,效果是相同的,这里做个实验:

import numpy as np
A=[1,2,3]
B=[4,5,6]
print(np.inner(A,B))
print(np.dot(A,B))

可以看到结果都是32

但是对于二维数据来说,两者就有了区别:

import numpy as np
A=[[1 ,10], 
    [100,1000]]
B=[[1,2], 
    [3,4]]
print(np.inner(A,B))
print(np.dot(A,B))

输出结果为:

下面的就是典型的行列式计算,每行乘以每列的结果,手动算一下就可以得到

可以看到inner的运算是

A的第一行与B的第一行:

1*1+2*10得到第一个值21

A的第一行与B的第二行:

1*3+10*4 = 43 得到第二个值43

A的第二行与B的第一行:

100*1+1000*2=2100 得到第三个值2100

A的第二行与B的第二行:

100*3+1000*4 = 4300 得到最后的结果4300

当数据是三维的时候,来看一下想法对不对:

A=[[1 ,10], 
   [100,1000],
   [100000,1]]
B=[[1,2], 
   [3,4],
   [100000,1]]
print(np.inner(A,B))

大概理解了inner是怎么做的了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值