np.dot运算 当参数是一维向量和2维矩阵时的区分

1.dot函数的两个参数都是向量

import numpy as np
a1 = np.ones(10)
# array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
a2 = 2 * np.ones(10)
# array([2., 2., 2., 2., 2., 2., 2., 2., 2., 2.])
np.dot(a1, a2)
# 20.0

则dot函数实现的是向量的内积运算

 

2.dot函数的参数是向量和矩阵

a3 = 2 * np.ones(3)
# array([2., 2., 2.])
a4 = np.arange(15).reshape(3, 5)
# array([[ 0,  1,  2,  3,  4],
#        [ 5,  6,  7,  8,  9],
#        [10, 11, 12, 13, 14]])
# 此处a3做行向量, (1, 3)
np.dot(a3, a4)
# array([30., 36., 42., 48., 54.]) 
a5 = np.ones(5)
# array([1., 1., 1., 1., 1.])
# 此处a5做列向量,(5, 1)
np.dot(a4, a5)
# array([10., 35., 60.])

则向量会自动匹配实现矩阵的乘法

 

3.dot函数的参数都是矩阵

a4 = np.arange(15).reshape(3, 5)
# array([[ 0,  1,  2,  3,  4],
#        [ 5,  6,  7,  8,  9],
#        [10, 11, 12, 13, 14]])
a5 = np.arange(15).reshape(5, 3)
# array([[ 0,  1,  2],
#        [ 3,  4,  5],
#        [ 6,  7,  8],
#        [ 9, 10, 11],
#        [12, 13, 14]])
np.dot(a4, a5)
# array([[ 90, 100, 110],
#        [240, 275, 310],
#        [390, 450, 510]])

则进行矩阵乘法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值