我有一个包含1200行和500000列的列表。如何将它转换成numpy数组?
我已经阅读了在绕过“数组太大”Python错误上的解决方案,但它们并没有帮助。
我尝试将它们放入numpy数组中:
我已经阅读了在绕过“数组太大”Python错误上的解决方案,但它们并没有帮助。
我尝试将它们放入numpy数组中:
import random
import numpy as np
lol = [[random.uniform(0,1) for j in range(500000)] for i in range(1200)]
np.array(lol)
[错误]:
ValueError: array is too big.
然后我尝试了 pandas
:
import random
import pandas as pd
lol = [[random.uniform(0,1) for j in range(500000)] for i in range(1200)]
pd.lib.to_object_array(lol).astype(float)
[错误]:
ValueError: array is too big.
我也尝试了 @askewchan 建议的hdf5:
import h5py
filearray = h5py.File('project.data','w')
data = filearray.create_dataset('tocluster',(len(data),len(data[0])),dtype='f')
data[...] = data
[错误]:
data[...] = data
File "/usr/lib/python2.7/dist-packages/h5py/_hl/dataset.py", line 367, in __setitem__
val = numpy.asarray(val, order='C')
File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 460, in asarray
return array(a, dtype, copy=False, order=order)
File "/usr/lib/python2.7/dist-packages/h5py/_hl/dataset.py", line 455, in __array__
arr = numpy.empty(self.shape, dtype=self.dtype if dtype is None else dtype)
ValueError: array is too big.
这篇文章表明我可以将一个巨大的numpy数组存储在磁盘中Python: 如何在PyTables中存储numpy多维数组?。但是,我甚至无法将我的列表嵌套转换为numpy数组=(
lol = [[0] * 500000] * 1200; a = np.array(lol)
进行复现(更加-内存-高效的测试方法)? - sebergnp.zeros((500000, 1200))
有效吗? - tacaswell