问题标签 [memmap]

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 投票
2 回答
213 浏览

python - Numpy memmap 按列对大型矩阵进行就地排序

我想在>> 系统内存(N, 2)的第一列对形状矩阵进行排序。N

使用内存中的 numpy,您可以执行以下操作:

但这似乎需要x[:,0].argsort()适合内存,这不适用于 memmap where N>> 系统内存(如果这个假设是错误的,请纠正我)。

我可以使用 numpy memmap 就地实现这种排序吗?

(假设使用 heapsort 进行排序,使用简单的数值数据类型)

0 投票
0 回答
865 浏览

python - 是否可以创建数组数组的 numpy.memmap?

我有一个 (4,) 数组要保存到磁盘(我正在使用的大小无法放入内存,因此我需要动态加载我需要的内容)。但是,我想把它放在一个numpy.memmap. 不确定是否可能,但任何建议将不胜感激。

我有这个没有numpy.memmap

[[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7]]

我希望能够做这样的事情:

[memmap([1, 2, 3, 4], dtype=object), memmap([2, 3, 4, 5], dtype=object), memmap([3, 4, 5, 6], dtype=object), memmap([4, 5, 6, 7], dtype=object)]

这需要我为每个数组创建不同的文件,我真的很想有一个memmap可以处理整个 4 个迷你数组的文件。有人可以提供一种方法来使用memmaps吗?

扩展 ie 的能力data.extend()很重要,因为我不知道我有多少个迷你阵列。

0 投票
1 回答
71 浏览

numpy - 对 numpy memmap 数组进行排序时出现内存错误

我有一个S大小为 12 GB 的 numpy-memmap 矩阵。我正在尝试对每一行进行 argsort 。为此,我定义了另一个 memmap 数组first_k来保存结果。问题是发生内存错误。

这是代码:

任何可能的解决方案?我正在考虑分片处理它......

提前致谢

0 投票
0 回答
29 浏览

python - 在大型二进制文件中重新排序行的最佳方法是什么?

我有一些想要连接的大型数据文件(32 x 非常大)。但是,数据是按错误的顺序收集的,所以我还需要对行重新排序。

到目前为止,我正在做的是:

我实际上是在一个包含 2 个以上文件的 for 循环中执行此操作的,但是您明白了。

这是最有效的方法吗?恐怕应用程序channel_mapping会将数据写入内存并减慢整个过程。事实上,这比简单地连接文件要慢得多。

0 投票
0 回答
242 浏览

python - 如何使用 numpy memmap 将 numpy 数组完全放在 RAM 上?

我想使用一个memmap分配的numpy数组,可以使用joblib并行处理,即不同进程之间的共享内存。但我也希望大数组完全存储在 RAM 上,以避免 memmap 对磁盘进行写入/读取。我有足够的 RAM 来存储整个数组,但是使用 np.zeros() 而不是 memmap 会使并行化复杂化,因为前者将内存分配给进程本地。我如何实现我的目标?

例子:

之后:

如果我用 np.zeros 分配 x_shared ,如下所示,我不能使用并行化。

0 投票
1 回答
255 浏览

python - Python:并行的numpy memmap

memmap跨多核 (MPI)使用 numpy 是否有意义?

我在磁盘上有一个文件。

我可以memmap在每个核心上创建一个单独的对象,并使用它从文件中读取不同的切片吗?

给它写信怎么样?

0 投票
1 回答
88 浏览

python - 为什么我在字符串源中出现内存错误?

我正在尝试并行执行 cython 文件。我的代码的骨架是:

其中 authors_id_map、authors_org_map、fos_name_map、publisher_map、year_map、reference_map、authors_id_prob、authors_org_prob、fos_name_prob、publisher_prob、year_prob、authors_id_co、authors_org_co、fos_name_co、publisher_co、year_co、doc2vec_map 都是非常大的 c++ 地图。由于我不想将它们分叉到不同的进程,因此我将它们制作为内存映射。但是,当我的代码到达 Parallel() 部分时,我最终会收到以下错误:

谁能告诉我发生了什么?什么是“字符串源”?

谢谢!

0 投票
0 回答
123 浏览

python - 我可以通过python从十六进制表(memmap)中提取一些数据吗?

我有一个名为 BGB 和 Pokemon Red/Blue 游戏的 Game Boy 模拟器。在模拟器中,我可以打开一个调试窗口。在窗口中,我可以在十六进制表(memmap)中看到游戏的整个内存:

我需要的窗口部分位于左下角: 在此处输入图像描述

我试图通过 pywin32 库访问这些数据:

但是没有任何效果......我得到的只是:

正如我们所看到的,没有任何结果。所以问题是,我可以从程序的内存中抓取几个字节的数据还是从窗口中复制它?

0 投票
1 回答
38 浏览

python - 管理存储在文件中的python结构,就好像它们在内存中一样?

我想以文件保留在磁盘上并且我的应用程序使用部分数据的方式管理许多文件。

我必须管理 2 种类型的文件 text-files/book-like, cvs-files/time-series。对于每个文件,我可能会生成多个尺寸缩小的副本,我想保留和缓存这些副本,因此我不必重新生成它们。

我可以看到两种方法:

Dask 似乎是一个不错的选择,但我找不到 Bag 对象在循环和/或范围访问中迭代的方法,即

我只能做 .take()

其次,有一种方法可以将 LIST 映射到文件并像普通列表一样执行列表操作,就好像它在内存中一样。


我想出了它,这是最好的:

但不起作用,因为返回计算()值;(

0 投票
0 回答
117 浏览

python - 保存文本文件时 Python 程序崩溃

我有一个包含 853 个图像的大型图像堆栈,每个图像都有尺寸(11779、15394)像素和 3 个通道。图像具有 8 位深度,并以 BigTiff 格式保存。我的数据存储在连接到计算机的外部 SSD 上。我想要做的是根据初始值改变一些像素的值。由于我无法将整个堆栈加载到内存中,因此我使用 tifffile.memmap 来内存映射我想要调查和更改的像素。

这是我的代码外观的一个最小示例:

如果代码看起来有点混乱,我深表歉意;它只是对更复杂的代码的简化。但我希望,目标明确。

现在我的问题如下:当我运行代码时,有时会发生代码崩溃。将文件“list.txt”写入磁盘时,我会收到错误消息“设备上没有剩余空间”,尽管磁盘上有很多可用空间(足以保存列表)。或者我收到错误消息“无效参数:'list.txt'”。此外,SSD 在错误消息后显示 0 kB 大小。我首先必须修复磁盘并重新启动,然后才能再次使用该磁盘。我认为这不是 memmap 的问题,而是以某种方式将列表保存为文本文件。

我已经可以使用其他(较小的)数据运行代码而没有任何错误消息,但它会因这些数据而崩溃。有人知道什么可能导致崩溃或我可以尝试什么吗?