【问题标题】:How to save numpy array into computer for later use in python如何将numpy数组保存到计算机中以供以后在python中使用
【发布时间】:2016-06-23 15:47:35
【问题描述】:

所以我正在做一些计算,我想在 python 中使用一个大数组。问题是如果我想对数组做一些事情,那么我的代码将重建数组(这需要很多时间)。理想情况下,我想:

-运行我的代码一次,然后创建数组。 - 将阵列保存到我的计算机中。 - 将它加载到另一个项目中,以便我可以使用它。

我查看了 numpy 的文档并尝试了

from tempfile import TemporaryFile outfile = TemporaryFile() np.save(outfile, x)

(上面的 x 是我的数组)。

但是,我似乎无法在我的计算机上的任何地方找到 .npy 文件。 (如果有帮助,我正在使用 PyCharm)。那么如何保存它,以及如何将我的数组加载到另一个项目中?

【问题讨论】:

  • 为什么不明确指定输出位置? TemporaryFile,根据定义,是临时的。要加载,请使用(惊喜!)numpy.load()

标签: python arrays numpy


【解决方案1】:

我有点困惑为什么你需要使用 TemporaryFile,因为正如它的文档所声称的那样,使用 TemporaryFile 创建的文件一旦关闭,或者当你的 Python 程序退出时将不复存在。另外,这个文件没有名字,所以我相信这是你的问题,而不是 np.save!

现在,要回答您的问题,请尝试以下操作:

import numpy as np 
a = np.ones(1000) # create an array of 1000 1's for the example  
np.save('outfile_name', a) # save the file as "outfile_name.npy" 

您可以在下次启动 Python 解释器时加载数组:

a = np.load('outfile_name.npy') # loads your saved array into variable a.

希望这能回答你的问题!

【讨论】:

    【解决方案2】:

    有相同的 Q 并在 numpy docs 找到了这个(虽然我发现需要使用 arr_0 和 arr_1 来引用字典中的变量!)

    #Store a single array
    import numpy as np
    np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
    np.load('/tmp/123.npy')
    array([[1, 2, 3],
           [4, 5, 6]])
    
    #Store multiple arrays as compressed data to disk, and load it again:
    import numpy as np
    a=np.array([[1, 2, 3], [4, 5, 6]])
    b=np.array([1, 2])
    np.savez('/tmp/123.npz', a=a, b=b)
    data = np.load('/tmp/123.npz')
    
    a1 = data['arr_0']
    array([[1, 2, 3],
           [4, 5, 6]])
    b1 = data['arr_1']
    array([1, 2])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多