我一直試圖解決這個問題超過2個小時。我的腳本和控制檯中使用點積的不同輸出
我寫了一個腳本,我把一些調試print
小號
...
print(array)
print(m)
print(np.dot(m.ravel(),array.ravel()))
...
當我啓動它,我有這樣的輸出:
$ ./test.py
[[ 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0]
[ 0 0 0 0 0 0 0]
[ 0 0 0 20303 20303 20303 20303]
[20303 20303 20303 20303 20303 20303 20303]
[20303 20303 20303 20303 20303 20303 20303]
[20303 20303 20303 20303 20303 20303 20303]]
[[False False False False False False False]
[False False False False False False False]
[False False False False False False False]
[False False False False True False False]
[False False True False True False False]
[False False False True False False False]
[False False False False False False False]]
15676
當我試圖重現一個python控制檯此行爲,我對點積有不同的結果:
$ /usr/bin/python3
Python 3.4.2 (default, Oct 8 2014, 10:45:20)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> array=np.array([[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 20303, 20303, 20303, 20303],
[20303, 20303, 20303, 20303, 20303, 20303, 20303],
[20303, 20303, 20303, 20303, 20303, 20303, 20303],
[20303, 20303, 20303, 20303, 20303, 20303, 20303]])
>>>
>>> m=np.array([[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False],
[False, False, False, False, True, False, False],
[False, False, True, False, True, False, False],
[False, False, False, True, False, False, False],
[False, False, False, False, False, False, False]])
>>> np.dot(m.ravel(),array.ravel())
81212
什麼會導致這種情況?順便說一句,81212
是我期望的結果,真的不明白我的腳本中發生了什麼。
嘗試運行'/ usr/bin/python3 test.py'只是爲了確保。 –
什麼Python解釋器'test.py'正在運行? 'test.py'的[shebang](https://en.wikipedia.org/wiki/Shebang_(Unix))是什麼? – Finwood
'#!/ usr/bin/python3' :( – nicoco