我有一个MxN稀疏的列csr_matrix
,我想在矩阵的右边添加一些只有零的列。原则上,阵列indptr
,indices
并data
保持相同的,所以我只是想改变矩阵的尺寸。但是,这似乎没有实现。
>>> A = csr_matrix(np.identity(5), dtype = int)
>>> A.toarray()
array([[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 1]])
>>> A.shape
(5, 5)
>>> A.shape = ((5,7))
NotImplementedError: Reshaping not implemented for csr_matrix.
水平堆叠零矩阵似乎也不起作用。
>>> B = csr_matrix(np.zeros([5,2]), dtype = int)
>>> B.toarray()
array([[0, 0],
[0, 0],
[0, 0],
[0, 0],
[0, 0]])
>>> np.hstack((A,B))
array([ <5x5 sparse matrix of type '<type 'numpy.int32'>'
with 5 stored elements in Compressed Sparse Row format>,
<5x2 sparse matrix of type '<type 'numpy.int32'>'
with 0 stored elements in Compressed Sparse Row format>], dtype=object)
这是我最终要实现的目标。是否可以快速重塑我的造型csr_matrix
而不复制其中的所有内容?
>>> C = csr_matrix(np.hstack((A.toarray(), B.toarray())))
>>> C.toarray()
array([[1, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0]])
您要做的并不是真正的numpy或scipy理解为重塑。但是对于您的特定情况,您可以重新创建CSR矩阵data
,indices
并重新使用indptr
,而无需复制它们:
import scipy.sparse as sps
a = sps.rand(10000, 10000, density=0.01, format='csr')
In [19]: %timeit sps.csr_matrix((a.data, a.indices, a.indptr),
... shape=(10000, 10020), copy=True)
100 loops, best of 3: 6.26 ms per loop
In [20]: %timeit sps.csr_matrix((a.data, a.indices, a.indptr),
... shape=(10000, 10020), copy=False)
10000 loops, best of 3: 47.3 us per loop
In [21]: %timeit sps.csr_matrix((a.data, a.indices, a.indptr),
... shape=(10000, 10020))
10000 loops, best of 3: 48.2 us per loop
因此,如果您不再需要原始矩阵a
,因为默认值为copy=False
,则只需执行以下操作:
a = sps.csr_matrix((a.data, a.indices, a.indptr), shape=(10000, 10020))
问题内容: 我有一个字段是,保持日期值,我从转换到。 有些记录有八个字符,有些记录有七个字符。我想通过将前导零添加到具有7的前导零来使它们具有相同的长度。 8个字符的示例:12162003 7个字符的示例:5072004(需要前导零) 查询: 问题答案: 可以在更多情况下使用的功能是REPLICATE。它将一个X值的次数连接到一个字符串。 这将花费您的生日的长度,将其减去8,然后在前面放置多个前导
最近,我将一个DB迁移到PostgreSQL,其中有一些列定义为和。在测试这个应用程序时,我发现当数据保存到这些列时,会有尾随零被添加到插入的值中。我正在使用Hibernate,我的日志显示了为准备好的语句构建的正确值。 我插入的数据示例是列中的0.75,存储的值是0.750。列的另一个示例:我插入值12,DB保持12.0000。 我发现了这个相关的问题:没有尾随零的postgresql数字类型。
假设我有一个数据框 和列名称列表 如何将新列添加到以零为值的数据帧中?
问题内容: 我使用SQLAlchemy制作了一个表,却忘记添加列。我基本上想这样做: 这是什么语法?我在文档中找不到它。 问题答案: 这称为数据库迁移(SQLAlchemy不支持即开即用的迁移)。您可以考虑使用sqlalchemy- migrate 在这种情况下提供帮助,也可以仅通过选择的数据库的命令行实用程序,
我只是试图将JComboBox添加到最后一列的所有行中。代码在下面。 当我运行这段代码时,它只在第3列显示true of false,而不是JComboBox?有人能找出问题所在吗?非常感谢
本文向大家介绍将尾随零添加到Python字符串,包括了将尾随零添加到Python字符串的使用技巧和注意事项,需要的朋友参考一下 作为数据处理活动的一部分,有时我们需要在一个字符串后附加另一个字符串。在本文中,我们将看到如何将动态零数字附加到给定的字符串。可以通过使用以下程序中所示的各种字符串函数来完成此操作。 使用ljust和len Python字符串方法返回以长度为宽度的字符串左对齐的字符串。使
问题内容: 与此问题类似,如何将空列添加到数据框?,我想知道向DataFrame添加一列空列表的最佳方法。 我想要做的基本上是初始化一列,然后遍历行以处理其中的一些行,然后在此新列中添加填充列表以替换初始化的值。 例如,如果下面是我的初始DataFrame: 然后,我最终希望得到这样的结果,其中每一行都经过单独处理(显示了示例结果): 当然,如果我尝试像使用其他任何常量一样进行初始化,它会认为我正
问题内容: 有没有更好的方法来获得此结果?如果num的位数比位数多,则此函数将失败,并且我认为它应该在库中的某个位置(例如Integer.toString(x,“%3d”)等) 问题答案: tring.format(http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax) 在你的情况下,它将是: 0 - to