【机器学习笔记】numpy中关于*、dot()、multiply()针对矩阵的乘积

情况A*Bnp.dot(A,B)np.multiply(A,B)
A.shape=(1,m)B.shape=(1,1)C.shape = (1,m) A行向量扩大b倍ValueError同 * 运算法则
A.shape=(1,m)B.shape=(1,n)C.shape = (1,m) 相同坐标的元素相乘。注:当且仅当n=m成立ValueError同 * 运算法则
A.shape=(1,m)B.shape=(n,1)C.shape = (n,m) 行向量扩大bi(i=1-n)倍,结果独占一行C.shape = (1,1) 向量点乘法则。注:当且仅当n=m成立同 * 运算法则
A.shape=(n,m)B.shape=(l,o)C.shape = (n,m) 相同坐标的元素相乘。注:当且仅当m=o时成立C.shape = (n,o) 相同坐标的元素相乘。注:当且仅当m=l成立同 * 运算法则

总结:
np.dot(a,b) 遵循矩阵向量运算规则
np.multiply(A,B)A*B两者遵循相同的运算规则,更偏向于列向量相同矩阵向量相乘。(也就适用于机器学习列向量代表样本数量)


附上 写笔记用的测试代码

import numpy as np

# 行向量、数
# a = np.array([[1, 2, 3]])
# b = np.array([[2]])

# 行向量、行向量
# a = np.array([[1, 2, 3]])
# b = np.array([[2, 2, 3]])
# b = np.array([[2, 2]])

# 行向量、列向量
# a = np.array([[1, 2, 3]])
# # b = np.array([[2],[ 2],[3]])
# b = np.array([[2], [2]])

# 矩阵、矩阵
# a = np.array([[1, 2,1], [3, 4,1]])
# b = np.array([[2, 2, 1], [1, 1,1]])

a = np.array([[1, 2,1], [3, 4,1]])
b = np.array([[2, 2, 1]])

# a = np.array([[1, 2], [3, 4]])
# b = np.array([[2, 2], [1, 1]])

# a = np.array([[1, 2], [3, 4], [1, 1]])
# b = np.array([[2], [2]])


print(a * b)
# print(np.dot(a, b))
print(np.multiply(a,b))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值