合成新矩阵python_从稀疏矩阵中轻松采样矢量,并从样本中创建一个新矩阵(python)...

这个问题有两个部分(也许是一个解决方案?):

来自稀疏矩阵的样本向量:是否有一种从稀疏矩阵中采样向量的简单方法?

当我尝试使用random.sample对线进行采样时,我得到一个TypeError:稀疏矩阵长度不明确.

from random import sample

import numpy as np

from scipy.sparse import lil_matrix

K = 2

m = [[1,2],[0,4],[5,0],[0,8]]

sample(m,K) #works OK

mm = np.array(m)

sample(m,K) #works OK

sm = lil_matrix(m)

sample(sm,K) #throws exception TypeError: sparse matrix length is ambiguous.

我目前的解决方案是从矩阵中的行数进行采样,然后使用getrow(),例如:

indxSampls = sample(range(sm.shape[0]), k)

sampledRows = []

for i in indxSampls:

sampledRows+=[sm.getrow(i)]

还有其他有效/优雅的想法吗?密集矩阵大小为1000×30000,可能更大.

从稀疏矢量列表构造稀疏矩阵:现在想象我有采样矢量的列表sampledRows,如何将其转换为稀疏矩阵而不将其密集化,将其转换为列表列表然后将其传递给lil_matrix?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值