问题标签 [sparse-array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9712 浏览

android - Android:是否有通过 SparseArray 进行迭代的习语

我正在使用针对用户名列表的唯一 int id 列表作为快速查找表,并决定使用 sparseArray 但我希望能够不时打印以记录整个列表以进行调试。

SparseArray 不可迭代,与 util.Map 接口不太相似

0 投票
3 回答
3327 浏览

python - 将使用-v7.3(HDF5)保存的Matlab稀疏矩阵加载到Python中并对其进行操作

我是python新手,来自matlab。我有一个以 matlab v7.3 (HDF5) 格式保存的大型稀疏矩阵。到目前为止,我已经找到了两种加载文件的方法,使用h5pytables. 然而,在矩阵上操作似乎都非常慢。例如,在 matlab 中:

使用表格:

使用 h5py:

(我放弃了等待……)

[编辑]

根据@bpgergo 的评论,我应该补充一点,我已经尝试通过以下两种方式将h5py( f) 加载的结果转换为numpy数组或稀疏数组:scipy

或者

但是这两个操作也都非常慢。

我在这里缺少什么吗?

0 投票
3 回答
883 浏览

wolfram-mathematica - 在 Mathematica 中的稀疏数组上有效替代 Outer?

假设我有两个非常大的列表 {a1, a2, ...} 和 {b1, b2, ...},其中所有 ai 和 bj 都是大型稀疏数组。为了内存效率,我将每个列表存储为一个全面的稀疏数组。

现在我想在所有可能的 ai 和 bj 对上计算一些函数 f,其中每个结果 f[ai, bj] 又是一个稀疏数组。顺便说一下,所有这些稀疏数组都具有相同的维度。

尽管

返回所需的结果(原则上)它似乎消耗了过多的内存。尤其是因为返回值是稀疏数组的列表,而在我感兴趣的情况下,一个全面的稀疏数组效率更高。

是否有上述使用的有效替代方法Outer

更具体的例子:

Outer等等。 (稀疏数组列表)的原始中间结果不仅效率极低,Outer而且在计算本身期间似乎也消耗了太多内存。

0 投票
2 回答
242 浏览

function - Wolfram Mathematica 中的作业

关于赋值和变量的问题

现在我们想在另一个函数中使用这个数组:

然后我们评估

错误!输出将是一个错误,如:Set::write Tag SparseArray in ... is Protected.

那么在函数(非纯函数)中改变函数参数的正确方法是什么?如何创建类似的Part[]

也许像:

但这又是错误

0 投票
2 回答
558 浏览

javascript - Node.js 中的 JavaScript/ECMAScript 数组是否“稀疏”?

我的问题与JavaScript 数组是否稀疏?有一个区别...

JavaScript 数组是否像 Node.js(和/或 V8)中实现的那样稀疏?我以为是,但后来我做了以下测试:

返回的是 10,000 个空白元素,最后是 'test'。这是因为调试输出的工作方式,还是 Node.js 在添加新元素时实际上为未定义的数组元素分配了内存?

0 投票
1 回答
667 浏览

c - 用于稀疏、惰性、不可变数组的线程安全缓存

我有一个应用程序,它涉及一个数组集合,这些数组可能非常大(索引达到 an 的最大值int),但它们是惰性的 - 它们的内容是动态计算的,在请求之前实际上并不知道。数组也是不可变的——每个数组的每个元素的值在程序的整个生命周期中都是恒定的。从某种意义上说,数组是稀疏的,因为通常只请求所有数组元素的一小部分(数组不包含大的零块,并且在这个意义上不是“稀疏”的。)

查找(并可能在此过程中计算)数组元素可能很昂贵,因此我想添加一个缓存层。缓存应实现以下接口:

wheredata作为每个数组的唯一句柄(可以有很多)。 point_cache_fetch()应该返回value传递给的参数point_cache_store()data参数idx,或者通过返回特殊值来指示缓存未命中DATUM_UNKNOWN_VALUE(调用者永远不会point_cache_store用调用DATUM_UNKNOWN_VALUE)。

问题是:我怎样才能实现point_cache_fetch()point_cache_store()?(它们目前是无操作存根。)

需要考虑的要点:

  • 缓存实现必须是线程安全的。几个线程同时运行,其中任何一个都可以调用point_cache_store()point_cache_fetch()使用任何dataidx参数。
  • 缓存确实是缓存;point_cache_fetch()return总是可以的DATUM_UNKNOWN_VALUE,即使它曾经知道那个值。在这种情况下,调用者将只执行普通查找。
  • 请记住,数组是不可变的——对于给定的参数dataidx参数,调用者将始终提供相同的value参数。

我意识到有很多方法可以做到这一点,并且需要权衡取舍。不过,对于这个问题,我将通过一个非常具体的标准来评估答案:它们是否会提高启发该问题的应用程序中某个特定基准的性能。如果您想加倍努力并自己运行基准测试,请执行以下操作:

函数point_cache_fetch()point_cache_store()位于“burrow/spectrum/point_cache.c”中。相关的基准是“benchmarks/b_cache”。

0 投票
1 回答
137 浏览

python - 使用 Python 将函数存储在稀疏数组中

我有一个相对较大的枚举,其中每个成员代表一个消息类型。客户端将收到一条消息,其中包含与枚举中的 msg 类型关联的整数值。对于每种味精类型,都会有一个单独的函数回调来处理味精。

我想通过使用枚举值映射到回调索引的稀疏数组(或向量)来尽可能快地查找和调度回调。在给定数组不能保存函数类型的 Python 中,这可能吗?

更新: 我的术语不清楚。我现在理解 Python 字典查找的复杂度为 O(1),这使它们成为完美的候选者。谢谢。

0 投票
8 回答
9591 浏览

android - 将 SparseBooleanArray 存储在 Bundle 中的最佳方法?

当配置更改发生时,我的 ListView Checkbox 状态会丢失,我明白这是为什么。我尝试实施

在我的一个片段中。所以我只是想知道将我的 SparseBooleanArray 存储在 outState 中的最简单方法是什么

另外,我有点困惑,因为 ListView 有方法:

这有什么好处?

0 投票
6 回答
4444 浏览

javascript - 在Javascript中压缩稀疏数组?

我有一个元素数组,其中条目稀疏。如何轻松地将稀疏数组压缩成密集数组,这样每次循环数据时就不必一直检查空值和未定义值?

以下是一些示例数据:

0 投票
4 回答
47576 浏览

javascript - javascript排序稀疏数组保持索引

对稀疏数组进行排序并将元素保持在相同索引上的最佳方法是什么?例如:

我想在排序之后