2

我有一个在 pypy 中运行的主程序,它创建三个 2D numpy 数组。我想将它们保存到一个文件中,然后使用 python 打开它们并使用 matplotlib.pyplot 绘制它们。

目前 pypy 不适用于 numpy.save,是否有一种简单的替代方法可以在使用 pypy 时将一组 numpy 数组保存到文件中?

4

3 回答 3

3

库 pickle 与 pypy 一起使用。他就是我保存/加载 numpy 数组的方式

import pickle 
import numpy

保存(使用pypy):

outfile1 = open(r'C:\pythontmp\numpyArray.pkl', 'w+b')
pickle.dump(numpyArray.tolist(), outfile1)
outfile1.close()

加载(使用python):

infile1 = open(r'C:\pythontmp\numpyArray.pkl', 'r+b')
file1 = pickle.load(infile1)                           # This is a list
infile1.close()

numpyArray = numpy.array(file1)                        # This is a numpy array
于 2012-11-20T12:24:35.353 回答
1

您也许可以使用ndarray.tofile () 和numpy.fromfile ()。这失去了在具有不同字节序的机器之间移动数据的能力,但应该比 save() 更快。

例子:

a = numpy.zeros( (5,5) )
a.tofile('a.dat')
b = numpy.fromfile('a.dat')
于 2012-11-19T23:05:31.997 回答
1

您可以尝试使用 python 的struct模块。此处此处的答案中有一些示例。

另一种选择是使用外部库,如 pyfits 或 pytables。但我怀疑它们可能在 pypy 上不可用。

于 2012-11-20T02:17:16.660 回答