当前位置: 首页 > 面试题库 >

使用SciPy / Numpy在Python中连接稀疏矩阵

逑俊楚
2023-03-14
问题内容

使用SciPy / Numpy在Python中连接稀疏矩阵的最有效方法是什么?

在这里,我使用以下内容:

>>> np.hstack((X, X2))
array([ <49998x70000 sparse matrix of type '<class 'numpy.float64'>'
        with 1135520 stored elements in Compressed Sparse Row format>,
        <49998x70000 sparse matrix of type '<class 'numpy.int64'>'
        with 1135520 stored elements in Compressed Sparse Row format>], 
       dtype=object)

我想在回归中使用两个预测变量,但是当前格式显然不是我想要的格式。是否有可能获得以下信息:

    <49998x1400000 sparse matrix of type '<class 'numpy.float64'>'
     with 2271040 stored elements in Compressed Sparse Row format>

它太大,无法转换为深格式。


问题答案:

您可以使用scipy.sparse.hstack来连接行数相同的稀疏矩阵(水平串联):

from scipy.sparse import hstack
hstack((X, X2))

同样,您可以用于scipy.sparse.vstack将具有相同列数的稀疏矩阵进行串联(垂直串联)。

使用numpy.hstacknumpy.vstack将创建带有两个稀疏矩阵对象的数组。



 类似资料:
  • 2.5.1 介绍 (密集) 矩阵是: 数据对象 存储二维值数组的数据结构 重要特征: 一次分配所有项目的内存 通常是一个连续组块,想一想Numpy数组 快速访问个项目(*) 2.5.1.1 为什么有稀疏矩阵? 内存,增长是n**2 小例子(双精度矩阵): In [2]: import numpy as np import matplotlib.pyplot as plt x = np.li

  • 问题内容: 我在用PyTables存储numpy csr_matrix时遇到问题。我收到此错误: 我的代码: 有任何想法吗? 谢谢 问题答案: 一个CSR矩阵可以从它的完全重建,和属性。这些只是常规的numpy数组,因此将它们作为3个单独的数组存储在pytables中,然后将它们传递回的构造函数应该没有问题。请参阅scipy文档。 编辑: Pietro的答案已指出该成员也应存储

  • 问题内容: 我有一个Sqlite数据库,其中包含以下类型的架构: 该表包含术语及其在文档中的各自计数。喜欢 该矩阵可以被视为稀疏矩阵,因为每个文档都包含很少的具有非零值的项。 我将如何使用numpy从稀疏矩阵创建密集矩阵,因为我必须使用余弦相似度来计算文档之间的相似度。 这个密集的矩阵看起来像一个表格,第一列为docid,所有术语列为第一行,其余单元格将包含计数。 问题答案: 我用熊猫解决了这个问

  • 问题内容: 我注意到Pandas现在已支持稀疏矩阵和数组。目前,我创建这样的: 有没有办法用或创建一个?转换为密集格式会严重破坏RAM。谢谢! 问题答案: 不支持直接转换ATM。欢迎捐款! 试试这个,在内存上应该没问题,因为SpareSeries很像csc_matrix(用于1列),而且空间效率很高

  • 问题内容: 我有一个很大的csv文件,其中列出了图中节点之间的连接。例: 0001,95784 0001,98743 0002,00082 0002,00091 因此,这意味着节点id 0001连接到节点95784和98743,依此类推。我需要将其读入numpy中的稀疏矩阵。我怎样才能做到这一点?我是python的新手,所以有关此的教程也将有所帮助。 问题答案: 使用scipy的lil_matri

  • 如何在python中找到包含负数的稀疏矩阵的sqrt?和对负数不起作用。我还尝试使用。但它也不起作用。