numpy中一维数组的行为

对于numpy.dot():

一维数组置于矩阵乘法的左部,被视为一个行向量;
一维数组置于矩阵乘法的右部,被视为一个列向量;
矩阵乘法运算结束得到的向量仍是一维数组。

原因:numpy 中的 broadcasting(广播)机制

【例1】一维数组置于矩阵乘法的右部,因为最常见,所以放在第一个来举例

import numpy as np

a = np.random.randint(0, 10, size = (3,6))
print("a")
print(a)
print(a.shape)
b = np.random.randint(0, 10, size = (6,))
print("b")
print(b)
print(b.shape)
c = np.dot(a, b)
print("c")
print(c)
print(c.shape)

输出:
a
[[0 6 3 9 7 9]
 [7 2 9 0 2 1]
 [3 3 8 2 1 3]]
(3, 6)
b
[8 1 7 8 5 1]
(6,)
c
[143 132 107]
(3,)

【例2】一维数组置于矩阵乘法的左部

import numpy as np

a = np.random.randint(0, 10, size = (3,6))
print("a")
print(a)
print(a.shape)
b = np.random.randint(0, 10, size = (3,))
print("b")
print(b)
print(b.shape)
c = np.dot(b, a)
print("c")
print(c)
print(c.shape)

输出:
a
[[6 6 3 5 2 9]
 [7 8 0 3 1 7]
 [6 7 6 2 5 4]]
(3, 6)
b
[6 4 6]
(3,)
c
[100 110  54  54  46 106]
(6,)

参考:

https://www.jianshu.com/p/3a4273351bdb

https://blog.csdn.net/lanchunhui/article/details/50158975

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值