我已经
- M:形状为p*n的浮点稀疏矩阵(scipy中的
csr_matrix
),其中p和n各自约为1百万。 - M ′:另一个浮点稀疏矩阵,其形状为p ′ * n ′,其中p ′〉p,且n ′〉n。
- IndexP:索引的向量,形状为1*p,具有p个不大于p的唯一无符号整数'
- IndexN:索引的向量,形状为1*n,具有n个不大于n的唯一无符号整数
如何将下面的循环转换为快速稀疏矩阵数组运算
for all i in range(n) and j in range (p) such that M[i,j]!=0:
M'[IndexP[i], IndexN[j]]= M[i,j]
示例:
假设
- M是
[ [0个2] [3个0] ]
- 索引P为
[9,100]
- 索引N为
[50,30]
- M“是稀疏矩阵,使得
M'.shape=(200,200)
然后上面的循环将赋值M'[9,30]=2, M'[100, 50]=3
(并且M'在其他地方为0)。
1条答案
按热度按时间3duebb1j1#