zoukankan      html  css  js  c++  java
  • 利用数组的的文件输入输出

    利用数组的文件输入输出

    1. 将数组以二进制格式保存到磁盘

    np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的。

    import numpy as np
    arr=np.arange(10)
    np.save('some_array',arr)

    如果文件路径末尾没有扩展名.npy,则该扩展名会自动加上。然后就可以通过np.load读取磁盘上数组:

    print(np.load('some_array.npy'))
    #输出[0 1 2 3 4 5 6 7 8 9]

    为了方便看到文件生成所以使用的是pycharm编写,需要注意的是使用np.load传入的文件名必须带后缀.npy;通过np.savez可以将多个数组保存到一个压缩文件中,将数组以关键字参数的形式传入即可。

    np.savez('array_archive.npz',a=arr,b=arr)

    加载.npz文件时,会得到一个类似字典的对象,该对象将各个数组进行延迟加载:

    arch=np.load('array_archive.npz')
    print(arch['b'])
    #结果[0 1 2 3 4 5 6 7 8 9]

     2.存取文本文件

    从文件中加载文本是一个非常标准的任务。我们需要用np.loadtxt或更专门化的np.genfromtxt将数据加载到普通的numpy数组中。

    这些函数都有许多选项可以使用:指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。

    arr=np.array([[1,2,3],[2,3,4],[3,4,5]])
    np.savetxt('array_ex.txt',X=arr,delimiter=',')

    将会生成一个文本array_ex.txt文件,相反执行np.loadtxt可以能读取文本

    print(np.loadtxt('array_ex.txt',delimiter=','))
    #返回结果:
    [[1. 2. 3.]
     [2. 3. 4.]
     [3. 4. 5.]]
  • 相关阅读:
    Poj 2017 Speed Limit(水题)
    Poj 1316 Self Numbers(水题)
    Poj 1017 Packets(贪心策略)
    Poj 1017 Packets(贪心策略)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    Poj 2662,2909 Goldbach's Conjecture (素数判定)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2388 Who's in the Middle(快速排序求中位数)
    poj 2000 Gold Coins(水题)
    poj 2000 Gold Coins(水题)
  • 原文地址:https://www.cnblogs.com/catxjd/p/9975685.html
Copyright © 2011-2022 走看看