标签: sparse-matrix

SparseArray vs HashMap

我可以想到为什么HashMap带有整数键的SparseArrays 比s 更好的几个原因:

  1. Android的文档SparseArray说"它通常比传统的慢HashMap".
  2. 如果使用HashMaps而不是SparseArrays 编写代码,则代码将与Map的其他实现一起使用,您将能够使用为Maps设计的所有Java API.
  3. 如果你用HashMaps而不是SparseArrays 编写代码,你的代码将在非android项目中工作.
  4. 映射覆盖equals(),hashCode()SparseArray不是.

然而,每当我尝试HashMap在Android项目中使用带整数键的时候,IntelliJ告诉我应该使用一个SparseArray代替.我觉得这很难理解.有谁知道使用SparseArrays的任何令人信服的理由?

java android hashmap sparse-matrix

161
推荐指数
6
解决办法
7万
查看次数

Javascript数组稀疏吗?

也就是说,如果我使用当前时间作为数组的索引:

array[Date.getTime()] = value;
Run Code Online (Sandbox Code Playgroud)

解释器会实例化从0到现在的所有元素吗?不同的浏览器有不同的做法吗?

我记得曾经是AIX内核中的一个错误,它会根据请求创建伪ttys,但如果你这样做,比如"echo>/dev/pty10000000000"它会创建/ dev/pty0,/ dev/pty1, ......然后摔倒了.在贸易展览会上很有趣,但我不希望这发生在我的客户身上.

javascript sparse-matrix

90
推荐指数
6
解决办法
3万
查看次数

如何将numpy.matrix或数组转换为scipy稀疏矩阵

对于SciPy稀疏矩阵,可以使用todense()toarray()转换为NumPy矩阵或数组.反向的功能是什么?

我搜索过,但不知道哪些关键字应该是正确的.

python numpy scipy sparse-matrix

67
推荐指数
2
解决办法
9万
查看次数

Java中的稀疏矩阵/数组

我正在开发一个用Java编写的项目,它要求我构建一个非常大的2-D稀疏数组.非常稀疏,如果这有所不同.无论如何:这个应用程序最关键的方面是时间上的效率(假设内存负载,虽然不能无限制地允许我使用标准的2-D阵列 - 关键范围是两个维度的数十亿).

在阵列中的kajillion细胞中,将有数十万个细胞包含一个物体.我需要能够很快地修改单元格内容.

无论如何:有没有人为此目的知道一个特别好的图书馆?它必须是伯克利,LGPL或类似的许可证(没有GPL,因为该产品不能完全开源).或者,如果只有一种非常简单的方法来制作自制的稀疏数组对象,那也没关系.

我正在考虑MTJ,但没有听到任何关于其质量的意见.

java algorithm sparse-array sparse-matrix

63
推荐指数
2
解决办法
5万
查看次数

Python中的稀疏3d矩阵/数组?

在scipy中,我们可以使用scipy.sparse.lil_matrix()等构造一个稀疏矩阵.但矩阵在2d.

我想知道在Python中是否存在稀疏3d矩阵/数组(张量)的现有数据结构?

ps我在3d中有很多稀疏数据,需要一个张量来存储/执行乘法.如果没有现有的数据结构,是否有任何建议来实现这样的张量?

python numpy scipy sparse-matrix

62
推荐指数
3
解决办法
2万
查看次数

Optimising Python dictionary access code

Question:

I've profiled my Python program to death, and there is one function that is slowing everything down. It uses Python dictionaries heavily, so I may not have used them in the best way. If I can't get it running faster, I will have to re-write it in C++, so is there anyone who can help me optimise it in Python?

I hope I've given the right sort of explanation, and that you can make some sense of my code! …

python optimization dictionary sparse-matrix

59
推荐指数
2
解决办法
3211
查看次数

具有稀疏矩阵的LCP

我用大写字母表示矩阵,用小写字母表示向量.

我需要解决以下矢量线性不等式系统v:

min(rv - (u + Av), v - s) = 0
Run Code Online (Sandbox Code Playgroud)

哪里0是零矢量.

其中r是一个标量,u并且s是载体,以及A是一个矩阵.

定义z = v-s,B=rI - A,q=-u + Bs,我可以重写前面的问题作为线性互补问题,并希望能使用LCP求解器,例如openopt:

LCP(M, z): min(Bz+q, z) = 0
Run Code Online (Sandbox Code Playgroud)

或者,以矩阵表示法:

z'(Bz+q) = 0
z >= 0
Bz + q >= 0
Run Code Online (Sandbox Code Playgroud)

问题是我的方程系统很大.要创造A,我

  • 创建四个矩阵A11,A12,A21,A22使用scipy.sparse.diags
  • 并将它们堆叠在一起 A = scipy.sparse.bmat([[A11, A12], [A21, …

python scipy sparse-matrix

53
推荐指数
2
解决办法
1153
查看次数

Scipy稀疏...数组?

所以,我正在使用非常稀疏的numpy数组进行一些Kmeans分类 - 很多很多零.我想我会使用scipy的'稀疏'软件包来减少存储开销,但我对如何创建数组而不是矩阵有点困惑.

我已经完成了关于如何创建稀疏矩阵的教程:http: //www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7

为了模拟一个数组,我只是创建一个1xN矩阵,但正如你可能猜到的,Asp.dot(Bsp)不能正常工作,因为你不能将两个1xN矩阵相乘.我必须将每个数组转换为Nx1,这非常蹩脚,因为我会为每个点积计算做这个.

接下来,我尝试创建一个NxN矩阵,其中第1列==第1行(这样您可以将两个矩阵相乘,只需将左上角作为点积),但结果证明效率非常低.

我喜欢使用scipy的稀疏包作为numpy的数组()的神奇替代品,但到目前为止,我还不确定该怎么做.

有什么建议?

python numpy matrix scipy sparse-matrix

48
推荐指数
1
解决办法
3万
查看次数

如何通过广播的密集1d数组元素地乘以scipy.sparse矩阵?

假设我有一个2d稀疏数组.在我的实际用例中,行数和列数都要大得多(比如20000和50000),因此在使用密集表示时它无法适应内存:

>>> import numpy as np
>>> import scipy.sparse as ssp

>>> a = ssp.lil_matrix((5, 3))
>>> a[1, 2] = -1
>>> a[4, 1] = 2
>>> a.todense()
matrix([[ 0.,  0.,  0.],
        [ 0.,  0., -1.],
        [ 0.,  0.,  0.],
        [ 0.,  0.,  0.],
        [ 0.,  2.,  0.]])
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个密集的1d数组,其中包含大小为3的所有非零组件(在我的实际案例中为50000):

>>> d = np.ones(3) * 3
>>> d
array([ 3.,  3.,  3.])
Run Code Online (Sandbox Code Playgroud)

我想使用numpy的常用广播语义来计算a和d的元素乘法.然而,scipy中的稀疏矩阵属于np.matrix:'*'运算符被重载使其行为类似于矩阵乘法而不是逐元乘法:

>>> a * d
array([ 0., -3.,  0.,  0.,  6.])
Run Code Online (Sandbox Code Playgroud)

一种解决方案是将'a'切换到'*'运算符的数组语义,这将产生预期的结果:

>>> a.toarray() * d
array([[ 0.,  0., …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy sparse-matrix

41
推荐指数
2
解决办法
1万
查看次数

从numpy python中的稀疏矩阵生成密集矩阵

我有一个Sqlite数据库,其中包含以下类型的架构:

termcount(doc_num, term , count)
Run Code Online (Sandbox Code Playgroud)

此表包含文档中各自计数的术语.喜欢

(doc1 , term1 ,12)
(doc1, term 22, 2)
.
.
(docn,term1 , 10)
Run Code Online (Sandbox Code Playgroud)

该矩阵可以被认为是稀疏矩阵,因为每个文档包含非常少的将具有非零值的项.

如何使用numpy从这个稀疏矩阵创建一个密集矩阵,因为我必须使用余弦相似度计算文档之间的相似性.

这个密集矩阵看起来像一个表格,其中docid作为第一列,所有条款都将列为第一行.剩余的单元格将包含计数.

python arrays numpy scipy sparse-matrix

41
推荐指数
2
解决办法
8万
查看次数