python numpy矩阵_matrix - 使用Python和NumPy的非常大的矩阵

matrix - 使用Python和NumPy的非常大的矩阵

NumPy是一个非常有用的库,从使用它我发现它能够轻松处理相当大(10000 x 10000)的矩阵,但开始与更大的任何东西挣扎(试图创建一个50000 x 50000的矩阵)失败)。 显然,这是因为大量的内存需求。

有没有办法在某种程度上在NumPy中创建巨大的矩阵(比如100万乘100万)(没有几TB的RAM)?

Peter asked 2019-04-25T02:41:47Z

11个解决方案

86 votes

PyTables和NumPy是要走的路。

PyTables将以HDF格式将数据存储在磁盘上,并具有可选的压缩功能。 我的数据集经常获得10倍压缩,这在处理数万或数亿行时非常方便。 它也很快; 我5岁的笔记本电脑可以在1,000,000行/秒的时间内处理类似SQL的GROUP BY聚合数据。 基于Python的解决方案也不错!

再次将数据作为NumPy重新访问进行访问非常简单:

data = table[row_from:row_to]

HDF库负责读取相关的数据块并转换为NumPy。

Stephen Simmons answered 2019-04-25T02:42:17Z

53 votes

scipy.sparse.csc_matrixs意在生活在记忆中。 如果你想使用大于RAM的矩阵,你必须解决这个问题。 您可以遵循至少两种方法:

尝试更有效的矩阵表示,利用矩阵具有的任何特殊结构。 例如,正如其他人已经指出的那样,稀疏矩阵(具有大量零的矩阵)存在有效的数据结构,如scipy.sparse.csc_matrix。<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值