编程语言
首页 > 编程语言> > python-调整numpy或数据集大小的有效方法?

python-调整numpy或数据集大小的有效方法?

作者:互联网

我想了解numpy数组对h5py数据集的resize()函数的影响.在我的应用程序中,我逐行读取一个文本文件,然后在解析数据之后,将其写入hdf5文件.什么是实现此目标的好方法.我应该将每个新行添加到numpy数组中并继续调整numpy数组的大小(增加轴)(最终将完整的numpy数组写入h5py数据集),还是应该直接将每个新行数据添加到h5py数据集中,从而调整h5py的大小内存中的数据集.如果我们在每一行之后继续调整大小,resize()函数将如何影响性能?还是应该在每100或1000行后调整大小?

每个数据集中大约有200,000行.

任何帮助表示赞赏.

解决方法:

我认为resize()将复制数组中的所有数据,如果您反复调用它会很慢.

如果要连续将数据追加到数组中,可以先创建一个大数组,然后使用索引将数据复制到该数组中.

或者,您可以使用数组模块中的数组对象,这是一个行为类似于列表的动态数组.将所有数据附加到数组对象后,可以将其转换为ndarray.这是一个例子:

import array
import numpy as np
a = array.array("d")
a.extend([0,1,2])
a.extend([3,4,5])
b = np.frombuffer(a, np.float).reshape(-1, 3)

标签:h5py,python,numpy
来源: https://codeday.me/bug/20191127/2076842.html