python np.dot啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python np.dot啥意思相关的知识,希望对你有一定的参考价值。
点积,比如np.dot([1,2,3],[4,5,6]) = 1*4 + 2*5 + 3*6 = 32 参考技术A1、矩阵乘法,例如np.dot(X,X.T)。
2、点积,比如np.dot([1,2,3],[4,5,6]) = 1*4 + 2*5 + 3*6 = 32。
Python教程
Python教程编玩边学教育好。Python是一种全新的程序设计语言,可以用它很容易地创造交互式故事情节、动画、游戏。他“我们的目的不是要创办电脑程序编写大军,而是帮助电脑使用者表达自己。”与其让孩子玩游戏;不如让孩子做编程。Python不是游戏,是一款可以制作游戏、动画的编程工具。网上关于少儿在线编程学习的培训机构很多,我们编玩边学少儿编程这块有多年的培训经验,适合中国儿童的学习。采用Python教学是由麻省理工大学开发的一种图形化、积木式的编程语言的。
参考技术B 做矩阵乘法,例如np.dot(X,X.T)执行 numpy.dot() 时出现值错误
【中文标题】执行 numpy.dot() 时出现值错误【英文标题】:Getting value error while performing numpy.dot() 【发布时间】:2018-07-06 05:37:06 【问题描述】:我使用 numpy 创建了两个数组:
import numpy as np
a = np.array([[1, 5, 7], [6, 8, 9]])
b = np.array([[1, 8, 8], [5, 8, 0], [8, 9, 0]])
np.dot(a, b)
现在,在执行 np.dot(a, b)
时出现错误:
ValueError: 操作数无法与形状 (2,3) (3,3) 一起广播。
通常,如果 a 的最后一个维度与 b 的倒数第二个维度的大小不同,则会引发值错误。我的代码有什么问题?
【问题讨论】:
@MeghaliAgrawal 你是对的。我想知道是否有版本差异...您使用的是哪一个? 还有 NumPy 版本? 我只是想知道......你确定你正在运行这个确切的代码吗? @MeghaliAgrawal 你怎么会得到不同的结果matrix multiplication
? ;) 请检查您的数组输入。您确定您正在运行您发布的代码吗?
这里有问题...这是需要截图来说服的罕见情况...
【参考方案1】:
您的代码运行良好。请注意,当np.dot()
的输入是矩阵时,np.dot()
执行矩阵乘法
In [18]: a = np.array([[1, 5, 7], [6, 8, 9]])
...: b = np.array([[1, 8, 8], [5, 8, 0], [8, 9, 0]])
...:
# @ is equivalent to `np.dot()` and `np.matmul()` in Python 3.5 and above
In [19]: a @ b
Out[19]:
array([[ 82, 111, 8],
[118, 193, 48]])
In [20]: (a @ b).shape
Out[20]: (2, 3)
# sanity check!
In [22]: a @ b == np.matmul(a, b)
Out[22]:
array([[ True, True, True],
[ True, True, True]], dtype=bool)
注意@
:它是在 Python 3.5 中作为 dedicated infix operator for matrix multiplication 引入的
这是因为*
运算符是否进行矩阵乘法或逐元素乘法存在一些混淆。因此,为了消除混淆,指定了一个专用运算符@
用于矩阵乘法。所以,
*
执行逐元素乘法@
执行矩阵乘法(点产品)
【讨论】:
使用二维 NumPy 数组a
和 b
执行无忧点积的最简单方法是 (a * b).sum(axis=-1)
以上是关于python np.dot啥意思的主要内容,如果未能解决你的问题,请参考以下文章
python中使用numpy包的向量矩阵相乘np.dot和np.matmul
python np.dot外积有效,但内积返回nan,太奇怪了