我有一个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