小编Tar*_*tra的帖子

Numpy和PyTables的浮点异常

我有一个由PyTables生成的相当大的HDF5文件,我试图在集群上读取.当我读到一个单独的块时,我遇到了NumPy的问题.我们来看看这个例子:

HDF5文件中阵列的总形状是,

In [13]: data.shape
Out[13]: (21933063, 800, 3)
Run Code Online (Sandbox Code Playgroud)

此数组中的每个条目都是a np.float64.

我让每个节点读取大小的切片(21933063,10,3).不幸的是,NumPy似乎无法一次读取所有2100万个子对象.我试图通过将这些切片分成10个大小的切片(2193306,10,3)然后使用以下简化来使事情正常工作:

In [8]: a = reduce(lambda x,y : np.append(x,y,axis=0), [np.array(data[i*      \
        chunksize: (i+1)*chunksize,:10],dtype=np.float64) for i in xrange(k)])
In [9]:
Run Code Online (Sandbox Code Playgroud)

在哪里1 <= k <= 10chunksize = 2193306.此代码适用于k <= 9; 否则我得到以下内容:

In [8]: a = reduce(lambda x,y : np.append(x,y,axis=0), [np.array(data[i*      \
        chunksize: (i+1)*chunksize,:10],dtype=np.float64) for i in xrange(k)])
Floating point exception
home@mybox  00:00:00  ~
$
Run Code Online (Sandbox Code Playgroud)

我尝试使用Valgrind的memcheck工具来弄清楚发生了什么,似乎PyTables就是罪魁祸首.跟踪中显示的两个主要文件是libhdf5.so.6与之相关的文件blosc …

python numpy hdf5 pytables

14
推荐指数
1
解决办法
1968
查看次数

标签 统计

hdf5 ×1

numpy ×1

pytables ×1

python ×1