matlab请使用-v7.3,将使用-v7.3(HDF5)保存的Matlab稀疏矩阵加载到Python中并对其进行操作...

我是

python的新手,来自matlab.我有一个以matlab v7.3(HDF5)格式保存的大型稀疏矩阵.到目前为止,我已经找到了两种使用h5py和tables加载文件的方法.然而,在矩阵上运行似乎非常缓慢.例如,在matlab中:

>> whos

Name Size Bytes Class Attributes

M 11337x133338 77124408 double sparse

>> tic, sum(M(:)); toc

Elapsed time is 0.086233 seconds.

使用表格:

t = time.time()

sum(f.root.M.data)

elapsed = time.time() - t

print elapsed

35.929461956

使用h5py:

t = time.time()

sum(f["M"]["data"])

elapsed = time.time() - t

print elapsed

(我放弃了等待……)

[编辑]

根据@bpgergo的评论,我应该补充说我已经尝试通过以下两种方式将h5py(f)加载的结果转换为numpy数组或scipy稀疏数组:

from scipy import sparse

A = sparse.csc_matrix((f["M"]["data"], f["M"]["ir"], f["tfidf"]["jc"]))

要么

data = numpy.asarray(f["M"]["data"])

ir = numpy.asarray(f["M"]["ir"])

jc = numpy.asarray(f["M"]["jc"])

A = sparse.coo_matrix(data, (ir, jc))

但这两项行动都非常缓慢.

这里有什么我想念的吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值