在Jupyter Notebook中np.dot输出不正确

时间:2017-10-03 20:27:58

标签: python-3.x numpy jupyter-notebook

当我在终端与Jupyter笔记本中运行此代码时,我得到了不同的结果。两者都使用Python 3.6和numpy 1.13.1。

终端(正确解决方案):

>>> import numpy as np
>>> vector_one = np.asarray([
... [1],
... [2],
... [1]],
... dtype=np.float32)
>>> vector_two = np.asarray([
... [3],
... [0],
... [1]],
... dtype=np.float32)
>>> dot_product = np.dot(vector_one[:,0],vector_two)
>>> print(dot_product)
[ 4.]

Jupyter笔记本:

import numpy as np

vector_one = np.asarray([
    [1],
    [2],
    [1]
], dtype=np.float32)

vector_two = np.asarray([
    [3],
    [0],
    [1]
], dtype=np.float32)

dot_product = np.dot(vector_one[:,0], vector_two)
print(dot_product)
[0.]

我在这里得到一个不同(和不正确)的结果怎么可能?

编辑:尝试直接输入转置的矢量

[In]np.array_equal(vector_one[:,0],np.asarray([1,2,1],dtype=np.float32))
[Out] True
[In] dot_product = np.dot(vector_one[:,0], vector_two)
[Out] [0.]
[In] dot_product = np.dot(np.asarray([1,2,1],dtype=np.float32), vector_two)
[Out] [4.]

现在我更加困惑了。

0 个答案:

没有答案