我有一個2D numpy的陣列,其看起來像這樣,創建從2D numpy的陣列的COO矩陣
[[3, 4, 5, 6], [4, 5, 6, 7], [9, 10, 3, 5]]
我使用以下代碼轉換成COO矩陣這樣的:
# Flatten 2D array
data = np.asarray(twod_array).flatten()
row = np.arange(0, len(data))
col = np.arange(0, len(row))
# Make COO matrix
mat = coo_matrix((data, (row, col)), shape=(len(row), len(row)))
是這是將2D numpy數組轉換爲COO矩陣的正確方法?
編輯
我所試圖做的就是這一點,我有一個coloumn和項目的其他部分。
parts item
processor, display, sensor temp. monitoring system
fan baldes, motor, sensor motion detecting fan
. .
. .
我已轉換的數據對上面的數字,使得它們可以被進一步處理。
parts items
1, 2, 3 1
4, 5, 3 2
所以現在我想把上面的數據輸入到LightFM中,所以我創建了一個這樣的2D數組。
[[1, 2, 3, 1], [4, 5, 3, 2]]
但由於LightFM的擬合方法只需要在形狀np.float32 coo_matrix [n_users,n_items]其是含有用戶 - 項目交互的矩陣。我使用上述方法轉換2D陣列。
你爲什麼覺得這是不正確的?這是否會導致錯誤? –
@cᴏʟᴅsᴘᴇᴇᴅ沒有錯誤。我正在使用它來訓練LightFM模型,並且模型生成的建議非常奇怪。 –
您可以使用'mat.A'來檢查。你的預期產出是多少? – Akavall