我有值的NX1向量。我想要做的是創建一個NxN矩陣,其中每個值表示第i個值和第j個值之間的差異 - 有點像大型相關矩陣。我已經完成了這個循環,但我正在尋找一種更優雅的方式來使用Python的矢量化功能,因爲這個矢量可能會相當大。我意識到有一些問題與抽象的答案。矩陣在Python的差異,導致像MATLAB的bsxfun
我怎樣才能複製MATLAB的Python中bsxfun
功能?
我發佈了一個關於SE的問題來發現bsxfun
here,但現在需要在Python中做同樣的事情。
我有值的NX1向量。我想要做的是創建一個NxN矩陣,其中每個值表示第i個值和第j個值之間的差異 - 有點像大型相關矩陣。我已經完成了這個循環,但我正在尋找一種更優雅的方式來使用Python的矢量化功能,因爲這個矢量可能會相當大。我意識到有一些問題與抽象的答案。矩陣在Python的差異,導致像MATLAB的bsxfun
我怎樣才能複製MATLAB的Python中bsxfun
功能?
我發佈了一個關於SE的問題來發現bsxfun
here,但現在需要在Python中做同樣的事情。
我不是你想要的東西完全清楚,但numpy
的廣播規則(見here的介紹),意味着大多數的時間bsxfun
沒有必要的,因爲它只是作品(TM)。例如,如果我明白你在找什麼,像
>>> a = np.array([1,3,5,7,9])
>>> a - a[:,None]
array([[ 0, 2, 4, 6, 8],
[-2, 0, 2, 4, 6],
[-4, -2, 0, 2, 4],
[-6, -4, -2, 0, 2],
[-8, -6, -4, -2, 0]])
應該工作。
啊完美。我錯誤地使用了a-a.T,這當然是返回一個0的數組。謝謝。 – 2013-02-18 17:18:32
你甚至嘗試[搜索](http://stackoverflow.com/questions/8946810/is-there-an-equivalent-to-the-matlab-function-bsxfun-in-python)? – danodonovan 2013-02-18 17:09:50
是的,閱讀http://stackoverflow.com/questions/8946810/is-there-an-equivalent-to-the-matlab-function-bsxfun-in-python,http://stackoverflow.com/questions/12454685/翻譯-A-線的 - MATLAB的bsxfun-rdivide到蟒蛇,這裏的廣播教程http://www.scipy.org/EricsBroadcastingDoc,你真的需要downvote?你甚至沒有發佈回覆。 – 2013-02-18 17:14:08