我是機器學習的新手。使用 python,numpy。我需要在大小為 (3, 2) 的矩陣和大小為 (100, 2) 的矩陣的每一行上獲取點積,即
a = [[1, 2], [3, 4], [5, 6]]
b = [[5, 5], [6, 6], [7, 7], ...] # it has 100 row
我想要的是:
np.dot(a, b[0])
np.dot(a, b[1])
我目前有:
z = np.dot(a, b)
但尺寸不匹配
但我不能使用回圈并且需要對代碼進行矢量化。
誰能給我一些提示,非常感謝!!
uj5u.com熱心網友回復:
看來你要計算形狀的矩陣的點積3,2用轉形的矩陣100,2
你可以得到一個矩陣的轉置m與m.T
所以你想要的是:
np.dot(a, b.T)
這將為您提供一個形狀矩陣,3,100其中每一列np.dot(a,b[i])用于i = 0,...,99
uj5u.com熱心網友回復:
要使點積起作用,它需要 的??第一個維度b與 的第二個維度匹配a。因此你需要轉置b:
np.dot(a, b.T)
輸出:
array([[15, 18, 21, 24],
[35, 42, 49, 56],
[55, 66, 77, 88]])
或者a,取決于預期的輸出:
>>> np.dot(b, a.T)
array([[15, 35, 55],
[18, 42, 66],
[21, 49, 77],
[24, 56, 88]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/341058.html
下一篇:從兩個NumPy陣列中隨機選取行
