如何为大型数据创建numpy.linespace()的分块

时间:2019-06-28 06:05:11

标签: python-3.x numpy

我收到内存错误,因为由于使用的数据超过十亿,因此结果数据太大。

我可以使用哪种方法对数据进行分块?

1 个答案:

答案 0 :(得分:2)

如果要存储所有结果数据,则可以先将分块的数据存储到h5py。供参考http://docs.h5py.org/en/stable/。请详细说明您的问题

尝试首先创建linspace总大小的分块大小列表。

示例代码: 大小是您的linspace的形状,限制是分块值

    def create_list_sample_size(self, size, limit):
        list_sample_size= []
        while True:
            if size > limit:
                list_sample_size.append(limit)
                samples = samples - limit
            else:
                list_sample_size.append(limit)
                break

        return list_sample_size

然后创建您自己的linspace方法,在其中计算分块版本:

    def generate_linspace(list_sample_size)
        for sample in list_sample_size:
            length += sample
        length -= 1
        for sample in samples:
            index += 1
            high_range = low_range + sample
            _sample = np.arange(low_range, high_range, dtype=dtype)
            step = delta / length
            if step == 0:
                _sample *= delta
            else:
                _sample *= step

            low_range = high_range