python - 由于内存错误从文件加载时 Numpy 数组崩溃,但原始 numpy 变量是在同一环境中创建的
问题描述
我有一个非常大的 numpy 数组,我创建并保存它没有问题
numpy.save('file.npy', NumpyArrays)
但是,当我尝试使用
NumpyArrays = numpy.load('file.npy')
在完全相同的环境(Google Colaboratory)中,我的环境由于内存不足而崩溃。我尝试重新启动环境以使其保持新鲜,我尝试的唯一操作是加载数组,但它仍然崩溃。
与尝试从内存中加载相同的数组相比,创建和保存原始 numpy 数组的环境如何占用更少的内存?
我尝试使用此处的答案来节省内存
仅以写入模式打开,但我收到此错误
ValueError:数组无法进行内存映射:dtype 中的 Python 对象。
我猜这是因为第二列是整数列表。
如果这是相关的,这就是我的 numpy 变量的样子
numpyVariable[0:5]
array([[0, list([10158697, 5255434, 9860860, 3677049, 3451292, 7225330])],
[1,
list([5985929, 7356938, 5232932, 4623077, 10461651, 6629144, 2738221, 7672279, 3197654, 11678039, 1912097, 6581279, 8141689, 6694817, 6139889, 7946369, 3995629, 3169031, 3793217, 6990097, 11298098, 6120907, 5336712, 7366785, 7363171, 3933563, 6484209, 4243394, 6371367, 4361218, 11469370, 6166715, 11519607, 11602639, 10759034, 6432476, 5327726, 11390220, 7009744, 10225744, 3781058, 1305863, 462965, 1158562, 2620006, 73896, 4945223, 11780201, 3044821])],
[2, list([10847593, 8665775, 341568, 4164850, 6509965, 8227738])],
[3,
list([9105020, 1896456, 2757197, 5911741, 8123078, 10629261, 5646782, 5255907, 8802504, 3735293, 5496511, 1612181, 10029269, 8911733, 8035123, 4855475, 2226494, 10448630, 2041328, 532211, 10049766, 7320606, 7783187, 11536583, 9192742, 8965808, 7750786, 2462038, 111935, 4306882, 11193228])],
[4,
list([11406300, 9947761, 2539951, 1928472, 1286647, 1360522, 9680046, 1304518, 2577907, 5903319, 6304940, 8249558, 11156695, 5704721, 9753227, 465481, 8849435, 5040956, 8124190, 11094867, 9225419, 10531161, 3796335, 6660230, 823696, 3271428, 9167574])]],
dtype=object)
由于这可能很难解释,这里是原始的 pandas 数据帧,numpy 数组是从中转换而来的(使用df.values
)
EmbedID MappedC
0 0 [10158697, 5255434, 9860860, 3677049, 3451292,...
1 1 [5985929, 7356938, 5232932, 4623077, 10461651,...
2 2 [10847593, 8665775, 341568, 4164850, 6509965, ...
3 3 [9105020, 1896456, 2757197, 5911741, 8123078, ...
4 4 [11406300, 9947761, 2539951, 1928472, 1286647,...
第一列是整数,第二列是整数列表。
解决方案
推荐阅读
- android - Cordova - 如何使用闪屏作为正文背景
- windows - 将日期/时间戳传递到批处理文件中的行
- typescript - 为什么可以“记录”
`被分配给一个`记录 ` 没有类型错误? - google-apps-script - 是否可以获取完整的 Gmail 历史记录并将其导出到 Google 电子表格中?
- r - 检查列表中的元素是否为数字的快速方法(但 as.character())
- regex - 一个正则表达式,用于制作带有单词边界的首字母缩写词并删除单词前面的字符
- android - 我无法在 CardView 中看到我的视图
- javascript - 在 Firestore 中保存日历数据的最佳方法是什么?
- mongodb - MongoDB:返回不同的数组集
- javascript - 如何在一个或多个表单字段值更改之前禁用 React.js 中的按钮?