Questions tagged «sparse-matrix»

7
SparseArray与HashMap
我可以想到几个HashMap具有整数键的SparseArrays 比s 更好的原因: 的Android文档SparseArray说“通常比传统的慢HashMap”。 如果使用HashMaps而不是SparseArrays 编写代码,则您的代码将与Map的其他实现一起使用,并且将能够使用所有为Maps设计的Java API。 如果您使用HashMap而不是SparseArrays 编写代码,则您的代码将在非Android项目中运行。 地图会覆盖equals(),hashCode()而SparseArray不会。 但是,每当我尝试HashMap在Android项目中使用带有整数键的a 时,IntelliJ都会告诉我应该使用a SparseArray代替。我觉得这真的很难理解。有谁知道使用SparseArrays的任何令人信服的理由?

7
Javascript数组稀疏吗?
也就是说,如果我将当前时间用作数组的索引: array[Date.getTime()] = value; 解释器将实例化从0到现在的所有元素吗?不同的浏览器会做不同的事情吗? 我记得AIX内核中曾经有一个错误,该错误会在请求时创建伪tty,但是如果您说“ echo> / dev / pty10000000000”,它将创建/ dev / pty0,/ dev / pty1, ....然后倒下死亡。在贸易展览会上这很有趣,但是我不希望这种情况发生在我的客户身上。


6
稀疏的3D矩阵/数组在Python中?
在scipy中,我们可以使用scipy.sparse.lil_matrix()等构造一个稀疏矩阵。但是该矩阵是二维的。 我想知道Python中是否存在稀疏3d矩阵/数组(张量)的数据结构? ps我在3d中有很多稀疏数据,需要张量来存储/执行乘法。如果没有现有的数据结构,是否有实现此类张量的建议?

7
Java中的稀疏矩阵/数组
我正在开发一个用Java编写的项目,该项目要求我建立一个非常大的2-D稀疏数组。非常稀疏,如果有所作为。无论如何:此应用程序最关键的方面是时间效率(假定内存负载,尽管不是无限的以至于我无法使用标准的二维数组-关键范围在两个维度上都在数十亿之内) )。 在数组的千亿个单元中,将有数十万个单元包含一个对象。我需要能够非常快速地修改单元格内容。 无论如何:有人知道为此目的特别好的图书馆吗?它必须是伯克利,LGPL或类似的许可证(没有GPL,因为该产品不能完全开源)。或者,如果只有一种非常简单的方法来制作自制的稀疏数组对象,那也可以。 我正在考虑MTJ,但尚未听到有关其质量的任何意见。

3
查找大型稀疏矩阵的最小特征向量,在SciPy中比在八度中慢100倍以上
我正在尝试计算与大型对称方形稀疏矩阵(最大30000x30000)的最小特征值相对应的少数(5-500)特征向量,其中小于0.1%的特征值为非零。 我目前正在Shift-invert模式(sigma = 0.0)中使用scipy.sparse.linalg.eigsh,我通过有关该主题的各种帖子发现这是首选的解决方案。但是,在大多数情况下,最多需要1小时才能解决该问题。另一方面,如果我要求最大的特征值(系统中的秒数),则该功能非常快,这是文档中所期望的。 由于我对工作中的Matlab更加熟悉,因此我尝试在Octave中解决问题,这在短短几秒钟(不到10秒)内使用eigs(sigma = 0)给出了相同的结果。由于我想对包括特征向量计算在内的算法进行参数扫描,因此在python中也要具有这种时间增益。 我首先更改了参数(尤其是公差),但是在时间尺度上并没有太大变化。 我在Windows上使用Anaconda,但尝试将scipy(这是一个很大的痛苦)使用的LAPACK / BLAS从mkl(默认为Anaconda)切换为OpenBlas(根据文档由Octave使用),但看不到更改性能。 我无法弄清楚所使用的ARPACK是否需要更改(以及如何更改)? 我将以下代码的测试用例上传到了以下Dropbox文件夹:https ://www.dropbox.com/sh/l6aa6izufzyzqr3/AABqij95hZOvRpnnjRaETQmka?dl =0 在Python中 import numpy as np from scipy.sparse import csr_matrix, csc_matrix, linalg, load_npz M = load_npz('M.npz') evals, evecs = linalg.eigsh(M,k=6,sigma=0.0) 在八度音阶中: M=dlmread('M.txt'); M=spconvert(M); [evecs,evals] = eigs(M,6,0); 任何帮助都在申请中! 我根据评论和建议尝试了一些其他选项: 八度: eigs(M,6,0)和eigs(M,6,'sm')给我相同的结果: [1.8725e-05 1.0189e-05 7.5622e-06 7.5420e-07 -1.2239e-18 -2.5674e-16] …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.