问题标签 [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.
android - Android:是否有通过 SparseArray 进行迭代的习语
我正在使用针对用户名列表的唯一 int id 列表作为快速查找表,并决定使用 sparseArray 但我希望能够不时打印以记录整个列表以进行调试。
SparseArray 不可迭代,与 util.Map 接口不太相似
python - 将使用-v7.3(HDF5)保存的Matlab稀疏矩阵加载到Python中并对其进行操作
我是python新手,来自matlab。我有一个以 matlab v7.3 (HDF5) 格式保存的大型稀疏矩阵。到目前为止,我已经找到了两种加载文件的方法,使用h5py
和tables
. 然而,在矩阵上操作似乎都非常慢。例如,在 matlab 中:
使用表格:
使用 h5py:
(我放弃了等待……)
[编辑]
根据@bpgergo 的评论,我应该补充一点,我已经尝试通过以下两种方式将h5py
( f
) 加载的结果转换为numpy
数组或稀疏数组:scipy
或者
但是这两个操作也都非常慢。
我在这里缺少什么吗?
wolfram-mathematica - 在 Mathematica 中的稀疏数组上有效替代 Outer?
假设我有两个非常大的列表 {a1, a2, ...} 和 {b1, b2, ...},其中所有 ai 和 bj 都是大型稀疏数组。为了内存效率,我将每个列表存储为一个全面的稀疏数组。
现在我想在所有可能的 ai 和 bj 对上计算一些函数 f,其中每个结果 f[ai, bj] 又是一个稀疏数组。顺便说一下,所有这些稀疏数组都具有相同的维度。
尽管
返回所需的结果(原则上)它似乎消耗了过多的内存。尤其是因为返回值是稀疏数组的列表,而在我感兴趣的情况下,一个全面的稀疏数组效率更高。
是否有上述使用的有效替代方法Outer
?
更具体的例子:
Outer
等等。 (稀疏数组列表)的原始中间结果不仅效率极低,Outer
而且在计算本身期间似乎也消耗了太多内存。
function - Wolfram Mathematica 中的作业
关于赋值和变量的问题
现在我们想在另一个函数中使用这个数组:
然后我们评估
错误!输出将是一个错误,如:Set::write Tag SparseArray in ... is Protected.
那么在函数(非纯函数)中改变函数参数的正确方法是什么?如何创建类似的Part[]
?
也许像:
但这又是错误
javascript - Node.js 中的 JavaScript/ECMAScript 数组是否“稀疏”?
我的问题与JavaScript 数组是否稀疏?有一个区别...
JavaScript 数组是否像 Node.js(和/或 V8)中实现的那样稀疏?我以为是,但后来我做了以下测试:
返回的是 10,000 个空白元素,最后是 'test'。这是因为调试输出的工作方式,还是 Node.js 在添加新元素时实际上为未定义的数组元素分配了内存?
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()
使用任何data
或idx
参数。 - 缓存确实是缓存;
point_cache_fetch()
return总是可以的DATUM_UNKNOWN_VALUE
,即使它曾经知道那个值。在这种情况下,调用者将只执行普通查找。 - 请记住,数组是不可变的——对于给定的参数
data
和idx
参数,调用者将始终提供相同的value
参数。
我意识到有很多方法可以做到这一点,并且需要权衡取舍。不过,对于这个问题,我将通过一个非常具体的标准来评估答案:它们是否会提高启发该问题的应用程序中某个特定基准的性能。如果您想加倍努力并自己运行基准测试,请执行以下操作:
函数point_cache_fetch()
和point_cache_store()
位于“burrow/spectrum/point_cache.c”中。相关的基准是“benchmarks/b_cache”。
python - 使用 Python 将函数存储在稀疏数组中
我有一个相对较大的枚举,其中每个成员代表一个消息类型。客户端将收到一条消息,其中包含与枚举中的 msg 类型关联的整数值。对于每种味精类型,都会有一个单独的函数回调来处理味精。
我想通过使用枚举值映射到回调索引的稀疏数组(或向量)来尽可能快地查找和调度回调。在给定数组不能保存函数类型的 Python 中,这可能吗?
更新: 我的术语不清楚。我现在理解 Python 字典查找的复杂度为 O(1),这使它们成为完美的候选者。谢谢。
android - 将 SparseBooleanArray 存储在 Bundle 中的最佳方法?
当配置更改发生时,我的 ListView Checkbox 状态会丢失,我明白这是为什么。我尝试实施
在我的一个片段中。所以我只是想知道将我的 SparseBooleanArray 存储在 outState 中的最简单方法是什么。
另外,我有点困惑,因为 ListView 有方法:
这有什么好处?
javascript - 在Javascript中压缩稀疏数组?
我有一个元素数组,其中条目稀疏。如何轻松地将稀疏数组压缩成密集数组,这样每次循环数据时就不必一直检查空值和未定义值?
以下是一些示例数据:
javascript - javascript排序稀疏数组保持索引
对稀疏数组进行排序并将元素保持在相同索引上的最佳方法是什么?例如:
我想在排序之后