我有一个名为推理的矩阵,由存储项目ID的数组组成.每个数组代表对一个客户的建议.以下是一个数组的快照.
inference[0] = array([ 1, 17, 0, 29, 33, 10, 23, 18, 4, 25, 37, 41, 19, 7, 45, 44, 28,
5, 21, 30, 27, 6, 16, 32, 3, 46, 47, 11, 24, 35, 39, 15, 22, 31,
43], dtype=int32)
我还有一个名为Score的矩阵,由存储相应索引的ItemID的预测分数的数组组成.每个数组表示一个客户的一组ItemID分数.以下是一个数组的快照.
score[0] = array([ 4.66423448e-01, 3.04435879e-01, 1.20756114e-01, 7.42338740e-03,
1.00917931e-02, 3.40771784e-02, 2.95762312e-02, 4.64895252e-03,
-4.86475747e-02, -5.37142403e-03, -2.96056704e-04, -3.23560827e-05,
-2.89172482e-02, -3.72408911e-02, -6.24527574e-01, -1.06988378e-04,
-1.80022987e-03, -3.40648238e-02, -2.07088395e-02, -2.53725616e-03,
-2.20156523e-02, -3.26039633e-02, -5.12802875e-02, -1.61312032e-03,
-1.99290374e-01, -1.46841628e-04, -8.44907165e-01, -1.73397407e-01,
-3.57963537e-02, -1.43663881e-03, -1.67909664e-03, -5.75751424e-03,
-2.39864983e-02, -3.77825587e-03, -9.72822814e-04])
因此,对于客户0,Itemid#1的模型预测分数是4.66423448e-01,Itemid#17的预测分数是3.04435879e-01...诸若此类.
我想按分数矩阵对推理矩阵进行排序.例如,用于
sorted_matrix[0] = array([ 1, 17, 0, 10, 23, 33, 29, 18, 41, 44, 46, 37, 43, 35, 32, 39, 28,
30, 31, 25, 15, 21, 27, 22, 19, 6, 5, 24, 7, 4, 16, 11, 3, 45,
47], dtype=int32)
在数组级别,我简单地这样做了
inference[0][np.argsort(-1 * (score))[0]]
而且它起作用了.然而,当我try 用来排序整个矩阵时
new_inference = inference[np.argsort(-score)]
它导致嵌套矩阵,其中new_inference[0]本身成为35x35矩阵,而不是array.
我在这里使用np.argsort()做错了什么?