问题标签 [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 投票
1 回答
1811 浏览

python - Python / Cython 中的快速 n 维稀疏数组

我有一个应用程序涉及非常稀疏的大型 n 维数组。scipy.sparse具有有用的“矢量化获取和设置”功能,因此 Cython 可用于快速填充稀疏矩阵。

当然 scipy 包不能处理 n 维。我发现有两个包在 pythonsparrayndsparse. 但是,似乎两者都没有矢量化获取和设置功能。

所以我需要:

  • 用于具有矢量化获取和设置的 n 维数组的 python 包或
  • 用于稀疏数组的 ac 库,我可以使用 Cython 轻松访问它或
  • 一些“自己动手”选项,我猜这需要相当于 python dict 的 ac

出于我的目的,我认为将 n 维坐标映射回一维或二维是可行的。更好的是有一个 dict 等价物,我可以在 Cython 循环中快速访问。我认为这排除了 python dict

想知道是否有人可以给我一个如何在 Cython 中使用 c++ map 对象的示例?

0 投票
1 回答
5611 浏览

java - 稀疏数组与java中的hashmap有何不同

在我的Android应用程序中,我在很多情况下都使用了哈希映射。我被要求通过考虑应用程序的性能来使用稀疏数组。那么,稀疏数组java中的hashmap有何不同,以及稀疏数组相对于 hashmap的优势是什么。谢谢你。

0 投票
0 回答
233 浏览

matlab - Matlab - 创建 N 个稀疏矩阵并将它们求和

我有N kx1稀疏向量,我需要将它们中的每一个乘以它们的转置,创建 N 个方阵,然后我必须对它们求和。k所需的输出是k矩阵。我曾尝试在循环中执行此操作并使用 arrayfun,但两种解决方案都太慢了。也许你们中的一个人可以更快地想出一些东西。以下是有关我提出的最佳解决方案的具体细节。

mdev_big是稀疏矩阵kN包含每个N向量。

这个过程的缓慢部分正在完成sigma_i,但我无法将它重塑为 3d 数组。我也尝试过 cat 而不是 reshape (较慢), ndSparse 而不是 full (慢得多),并fun_sigma_i返回一个完整的矩阵而不是一个稀疏的矩阵(较慢)。

谢谢您的帮助!,

0 投票
1 回答
1345 浏览

python - scipy中的子矩阵

我有一个稀疏矩阵 A 和一个列向量 a,

我会写一个子矩阵。我为此编写的代码是:

解决问题所需的时间相当长。我想知道是否可以修改代码以加快处理速度。

0 投票
1 回答
2034 浏览

julia - Julia 中的多维稀疏矩阵

为什么 Julia 中没有任何多维稀疏矩阵/数组?为什么我们只能有 2D 稀疏矩阵而不是 3D 稀疏矩阵(或数组)?

0 投票
1 回答
3837 浏览

python - Pandas 磁盘上的稀疏数据帧比密集版本大

我发现数据帧的稀疏版本在保存到磁盘时实际上比密集版本大得多。我究竟做错了什么?

使用版本 0.12.0

我最终希望以大约 10% 的密度有效地存储 10^7 x 60 个数组,然后将它们拉入 Pandas 数据帧并使用它们。


编辑:感谢杰夫回答原始问题。后续问题:这似乎只能节省酸洗,而不是使用 HDF5 等其他格式。腌制是我最好的路线吗?

这些数据,作为 Matlab .mat 文件中的索引列表,小于 12M。我很想把它变成 HDF5/Pytables 格式,这样我就可以只获取特定的索引(其他文件更大,加载到内存中需要更长的时间),然后轻松地对它们执行 Pandasy 操作。也许我没有以正确的方式解决这个问题?

0 投票
1 回答
2477 浏览

android - 如何使用 SparseArray 作为适配器的源?

I have a sparse array of values which I want to populate in a Spinner, and when the item is selected, I want to get the id (which is the key from the sparse array).

从 SparseArray 创建适配器的首选方法是什么?

是否可以对现有的适配器进行子类化,如 BaseAdapter 或 ListAdapter 以便项目将 SparseArray 中的键作为项目 ID?

我不知道如何实现上述内容,我正在考虑创建一个简单的阵列adapter实例,并从sparsearray作为源和选择项目时给出值高效的。

0 投票
2 回答
2391 浏览

java - 无法在android中的稀疏数组末尾添加值

sparseArray直到今天我一直玩得很好。现在看起来 sparseArray 不会报答我的爱 :(

我必须保持我存储在sparseArray. 只有一种方法setValueAt不允许设置密钥。key对我来说很重要。

告诉我什么是解决方法?我应该破解源吗?或者,如果有人可以提供自定义方法的帮助,我可以将其添加到我自己的自定义 sparseArray 类中,即我将编写MySparseArray继承自的代码sparseArray以添加我的该方法。我需要在最后一个索引或我的sparseArray.

0 投票
1 回答
305 浏览

java - 绘制到自定义缓冲区类 [Java]

简短版: 是否可以(通过 Graphics2D)绘制到自定义缓冲区类(“稀疏”光栅图像)中?

更长的版本: 我想将多边形(由封闭路径给出)转换为光栅图像。

但是由于多边形可能非常大(这是一个研究项目),我必须使用稀疏存储(项目的这一部分已经由我之前的某个人实现)

由于实现(高效)光栅算法非常耗时,我想使用 java 已经提供的方法(例如 Graphics2D),而不是绘制到 BufferedImage 尝试绘制到我自己的自定义存储中(想想它就像 BufferedSparseImage )。

这可能吗/实现这一目标的最简单方法是什么?

0 投票
1 回答
1008 浏览

matlab - MATLAB张量:追加行并为空元素填充NaN而不是0

我有一个张量 T

T(:,:,1) =

T(:,:,2) =

现在我想通过做添加一个元素

我得到以下结果

T(:,:,1) =

T(:,:,2) =

T(:,:,3) =

如您所见,matlab 自动为新的行和列元素插入 0。我知道我可以使用 T(T==0)=NaN 转换零。但我正在寻找一种立即插入 NaN 的方法,这样我就不必进行额外的转换。

  • 有没有一种方法可以让 matlab 为这些元素自动插入 NaN 而不是 0?

期望的结果:

T(:,:,1) =

T(:,:,2) =

T(:,:,3) =

感谢你的帮助。