【问题标题】:What is the difference between the following two multipliers in numpy?numpy中以下两个乘数有什么区别?
【发布时间】:2018-08-20 01:19:02
【问题描述】:

以下两个乘数有什么区别? 我的代码和输出如下:

>>> print np.dot(np.array([1,2]), np.array([[3,4,5],[6,7,8]]))
[15 18 21]
>>> print np.dot(np.array([[1,2]]), np.array([[3,4,5],[6,7,8]]))
[[15 18 21]]

所以我想知道这两个公式是不是同一个意思,如果不是,是什么意思?

【问题讨论】:

  • np.array([[1,2]]) 是二维的。
  • 这里的实际问题是什么?比如,你不明白哪一部分?你不知道array([[1, 2]])[[15 18 21]] 是二维的吗?或者不明白为什么将 1x2 矩阵乘以 2x3 矩阵会得到与将 2 向量乘以 2x3 矩阵不同的结果?还是……?
  • 我知道array([[1, 2]])和[[15 18 21]]是二维数组,但不知道为什么是二维矩阵?而我的实际问题是,为什么将 1x2 矩阵乘以 2x3 矩阵会得到与将 2 向量乘以 2x3 矩阵不同的结果?
  • 你看到输入的形状和输出的形状之间有联系吗?有一个模式。

标签: python numpy math matrix


【解决方案1】:

dot 文档中的相关部分是:

如果a 是 N 维数组,b 是 M 维数组(其中 M>=2),则它是 在a 的最后一个轴和b 的倒数第二个轴上求和乘积::

np.dot(np.array([[1,2]]), np.array([[3,4,5],[6,7,8]]))
[[15 18 21]]

(1,2) dot with (2,3) => (1,3)  

a 的最后一个轴是 2,b 的倒数第二个也是。

np.dot(np.array([1,2]), np.array([[3,4,5],[6,7,8]]))
[15 18 21]

(2,) dot with (2,3) => (3,)

a 的最后一个轴和b 的倒数第二个轴相同。

一个 (4,2) 点与 (2,3) 将产生一个 (4,3) 数组。

或者使用 3d first 数组:

In [284]: np.dot(np.ones((4,3,2)),np.ones((2,3))).shape
Out[284]: (4, 3, 3)

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这两个公式是什么意思?
    • 因为 [[1,2]] 是矩阵 2D 但元素 = 0 所以结果相似
    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 2019-01-12
    • 2016-02-14
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多