相关疑难解决方法(0)

保留磁盘上的numpy数组的最佳方法

我正在寻找一种快速保存大型numpy数组的方法.我想以二进制格式将它们保存到磁盘,然后相对快速地将它们读回内存.不幸的是,cPickle还不够快.

我找到了numpy.saveznumpy.load.但奇怪的是,numpy.load将npy文件加载到"memory-map"中.这意味着定期操作数组确实很慢.例如,像这样的东西会非常慢:

#!/usr/bin/python
import numpy as np;
import time; 
from tempfile import TemporaryFile

n = 10000000;

a = np.arange(n)
b = np.arange(n) * 10
c = np.arange(n) * -0.5

file = TemporaryFile()
np.savez(file,a = a, b = b, c = c);

file.seek(0)
t = time.time()
z = np.load(file)
print "loading time = ", time.time() - t

t = time.time()
aa = z['a']
bb = z['b']
cc = z['c']
print "assigning time = ", time.time() - t; …
Run Code Online (Sandbox Code Playgroud)

python numpy pickle binary-data preserve

116
推荐指数
6
解决办法
8万
查看次数

从SQLite和HDF5格式导出/导入到numpy,scipy

Python与SQLite(sqlite3,atpy)和HDF5(h5py,pyTables)的接口似乎有很多选择 - 我想知道是否有人有使用numpy数组或数据表(结构化/记录数组)的经验,以及其中最为无缝地与每种数据格式的"科学"模块(numpy,scipy)集成(SQLite和HDF5).

python sqlite numpy hdf5 scipy

12
推荐指数
1
解决办法
3373
查看次数

如何保存大数组以便在python中占用更少的内存?

我是python的新手.我有一个很大的阵列,a尺寸如此(43200, 4000),我需要保存它,因为我需要它以便将来处理.当我尝试用a保存它时np.savetxt,txt文件太大而我的程序遇到内存错误,因为我需要处理相同大小的5个文件.有没有办法保存大型数组,以便占用更少的内存?

谢谢.

python numpy

9
推荐指数
2
解决办法
1万
查看次数

如何从list-python的大型列表中创建Numpy数组

我有一个包含1,200行和500,000列的列表.如何将其转换为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)
Run Code Online (Sandbox Code Playgroud)

[错误]:

ValueError: array is too big.
Run Code Online (Sandbox Code Playgroud)

然后我试过了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)
Run Code Online (Sandbox Code Playgroud)

[错误]:

ValueError: array is too big.
Run Code Online (Sandbox Code Playgroud)

我也试过hdf5,因为@askewchan建议:

import h5py
filearray = h5py.File('project.data','w')
data = filearray.create_dataset('tocluster',(len(data),len(data[0])),dtype='f')
data[...] = data
Run Code Online (Sandbox Code Playgroud)

[错误]:

    data[...] = data
  File "/usr/lib/python2.7/dist-packages/h5py/_hl/dataset.py", line 367, in __setitem__
    val = …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy pytables pandas

5
推荐指数
1
解决办法
3114
查看次数

标签 统计

numpy ×4

python ×4

arrays ×1

binary-data ×1

hdf5 ×1

pandas ×1

pickle ×1

preserve ×1

pytables ×1

scipy ×1

sqlite ×1