如何有效地处理大型复杂的numpy阵列?

2024-03-28 22:45:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的研究中,我使用的是由复杂数据组成的大型numpy数组。你知道吗

arr = np.empty((15000, 25400), dtype='complex128')
np.save('array.npy'), arr)

当存储它们时,每个大约有3 GB。加载这些数组是一个耗时的过程,这让我想知道是否有办法加快这个过程

我想到的一件事是将数组分解为复杂而真实的部分:

arr_real = arr.real 
arr_im = arr.imag

并分别保存每个部分。然而,这似乎并没有显著提高处理速度。有一些关于使用大型数组的文档,但是我没有找到太多关于使用复杂数据的信息。有没有智能(er)方法来处理大型复杂阵列?你知道吗


Tags: 数据numpy过程savenp数组arrayreal
1条回答
网友
1楼 · 发布于 2024-03-28 22:45:52

如果只需要内存中的部分数组,可以使用memory mapping加载它:

arr = np.load('array.npy', mmap_mode='r')

从文档中:

A memory-mapped array is kept on disk. However, it can be accessed and sliced like any ndarray. Memory mapping is especially useful for accessing small fragments of large files without reading the entire file into memory.

相关问题 更多 >