numpy的multiply和*什么区别?具体讲讲multiply 10

a=mat([[1,2,3,4,5]])b=mat([[1],[2],[3],[4],[5]])printshape(a)#(1,5)printshape(b)#(5,1... a = mat(
[
[1,2,3,4,5]
]
)
b = mat(
[
[1],[2],[3],[4],[5]
]
)
print shape(a) #(1, 5)
print shape(b) #(5, 1)
c1 = multiply(a,b)
# 1*5 5*1
print c1
'''
[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]
[ 4 8 12 16 20]
[ 5 10 15 20 25]]
'''
c2 = multiply(b,a)
'''
[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]
[ 4 8 12 16 20]
[ 5 10 15 20 25]]
'''
print c2

d1 = a*b
print d1 #[[55]]

d2 = b*a
print d2
'''
[[ 1 2 3 4 5]
[ 2 4 6 8 10]
[ 3 6 9 12 15]
[ 4 8 12 16 20]
[ 5 10 15 20 25]]
'''
print multiply(3,2) #6

为什么c1和c2输出结果是相同的?请具体讲讲multiply,谢谢!!!
展开
 我来答
learneroner
高粉答主

推荐于2017-05-30 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6536万
展开全部
multiply是numpy的ufunc函数,执行方法是对应元素相乘,而不是线性代数中的矩阵运算方式,类似于matlab中的点乘,当矩阵的维度不相同时,会根据一定的广播规则将维数扩充到一致的形式,例如上面的a就广播为5行5列的数组,每一行都是1,2,3,4,5,b也广播为5行5列的数组,每一列都是1,2,3,4,5,所以最终出现上述结果
伍好慕0H7a52
推荐于2017-12-12
知道答主
回答量:9
采纳率:0%
帮助的人:2.9万
展开全部
对于数组而言,两者一样,而对于矩阵而言,multiply是对应元素相城,而*是矩阵乘法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式