根据其col值在稀疏martix上的Appy函数

时间:2018-02-23 05:12:38

标签: python-3.x scipy sparse-matrix

我需要根据列值在稀疏马赛克上应用函数。想要的矩阵是new_mtx。这段代码正是我想要的,但这需要花费太多时间(我正在做NLP,所以我有一个庞大的数据库)。

因为一个例子总是更容易理解:

import numpy as np
from scipy.sparse import csr_matrix

row = np.array([0,0,0,0,0, 1,1,1,1,1 ,2,2,2,2,2 ,3,3,3,3,3 ,4,4,4,4,4 ])
col = np.array([0,1,2,3,4, 0,1,2,3,4, 0,1,2,3,4,0,1,2,3,4,0,1,2,3,4 ])
data = np.arange(1,26)
mtx = csr_matrix((data, (row, col)), shape=(5, 5))

coef = {0:0, 1:1, 2:2, 3:3,4:4}

new_mtx = mtx.copy()
for i in range(0,mtx.shape[0]):
     for j in range (0,mtx.shape[1]):
        new_mtx[i,j] = pow(coef[i],mtx[i,j])

使用内置功能是否有更快的方法来实现这一目标?

0 个答案:

没有答案