当我在终端与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.]
现在我更加困惑了。