Python的Numpy模块可用于存储和读取数据:

1.将一个数组存储为二进制文件

Numpy.save:将一个数组以.npy的格式保存为二进制文件

调用格式:numpy.save(file, arr, allow_pickle=True, fix_imports=True)

file的格式:file,str,or pathlib.Path. 如果file是一个文件对象,则文件名不会被改变;如果file是一个字符串或者路径,并且没有 .npy扩展,则会在后面加上 .npy的扩展

arr: 要保存的数组对象

Numpy.load:从.npy .npz或者pickled文件中加载数组或者pickled对象

调用格式:numpy.load(filemmap_mode=Noneallow_pickle=Falsefix_imports=Trueencoding='ASCII')

file的格式:  file-like object, string, or pathlib.Path.类似文件对象(file_like object)必须支持seek()read()方法。pickled文件要求file_like object必须支持readline()方法

encoding:读取python 2中的字符串时使用的编码方式。仅当在Python 3中加载Python 2生成的pickled文件时有用,该文件包括含有对象数组的npy / npz文件。不允许使用“ latin1”,“ ASCII”和“ bytes”以外的其他值,因为它们会破坏数字数据。默认值:“ ASCII”

返回:数组、元组或者字典等

import numpy as np

arr = np.arange(12).reshape(3,4)
# 保存arr数组
np.save('arr.npy', arr)
# 读取arr文件
a = np.load('arr.npy')
print(a)

2.将一个数组存储为文本文件

Numpy.savetxt将一个数组保存为文本文件,只能存储一维和二维数组

调用格式:numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='n', header='', footer='', comments='# ', encoding=None)

fname:filename or file handle. 如果文件名以.gz结尾,文件将自动保存为gzip的压缩格式

X:要保存的一维或者二维数组对象

fmt:规定保存的数组元素类型,默认为%.18e

delimiter:字符串或者字符,用来分隔列,默认为空格

Numpy.loadtxt从一个文本文件中加载数据,文本文件每一行的数值个数必须相同

调用格式:numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converts=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)

fname:要读取的文件,可以是.gz或者.bz2的压缩文件

dtype:指定数组的数据类型,默认为float

delimiter:用于分隔元素,要与文件中的分割符一致,默认为空格

返回:ndarray

import numpy as np

arr = np.arange(12).reshape(3,4)
# 将一个数组保存为csv文件
np.savetxt('arr.csv', arr, delimiter=',')
# 读取文件
arr_file = np.loadtxt('arr.csv', dtype=np.int, delimiter=',')
print(arr_file)

3.将一个数组存储为文本文件或者二进制文件

(这种方法会造成数组的信息丢失,不适合精确存储)

ndarray.tofile:将一个数组存储为文本文件或者二进制文件

调用格式:nadrray.tofile(fid, sep="", format="%s")

fid:可以是打开的文件对象或者包含文件名的字符串

sep:分隔符,当sep为空时,以二进制的方式写入

format:输出的格式字符串

Numpy.fromfile:从文本或二进制文件中读取数据

调用格式:numpy.fromfile(file, dtype='float', count=-1, sep='', offset=0)

dtype:规定返回的数组的数据类型

count:读取的元素个数,-1为读取整个文件,默认-1,

offset:用于二进制文件,规定当前文件位置的偏移量(以字节为单位)

import numpy as np

arr = np.arange(12).reshape(3,4)
arr.tofile('arr.txt', sep=',', format='%d')
# 以存储后的形式输出
arr_out1 = np.fromfile('arr.txt', dtype=np.int, sep=',')
print(arr_out1)
# 以存储前的形式输出
arr_out2 = np.fromfile('arr.txt', dtype=np.int, sep=',').reshape(3,4)
print(arr_out2)

4.将多个数组存入一个文件

Numpy.savez:将多个数组以未压缩的.npz格式存入一个文件中

调用格式:numpy.savez(file, *args, **kwds)

如果传入的数组参数没有给相应的键,则函数会自动给每个数组参数一个名字,从arr_0、arr_1、arr_2依次递推;如果给定了键,则可以用给定的键。

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.random.randint(0, 12, (3, 4)) # 不给数组参数相应的键
np.savez('array.npz', arr1, arr2)
f = np.load('array.npz')
print(f['arr_0'])
print(f['arr_1']) # 给数组参数相应的键
np.savez('array2.npz', arr1=arr1, arr2=arr2)
f2 = np.load('array2.npz')
print(f2['arr1'])
print(f2['arr2'])

5.将多个数组以压缩的形式存入一个文件

Numpy.savez_compressed:将多个数组以压缩后的.npz格式保存到一个文件中

调用格式:numpy.savez_compressed(file, *args, **kwds)

savez_compressed的用法与savez类似

Numpy用于数组数据的存储和读取的更多相关文章

  1. 在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除。

    在VC下采用ADO实现BLOB(Binary)数据的存储,读取,修改,删除. 作者:邵盛松 2009-09-05 前言 1关于的BLOB(Binary)数据的存储和读取功能主要参考了MSDN上的一篇& ...

  2. 使用 SharedPreferences 实现数据的存储和读取

    在开发的过程中我们必须遇到的就是如何对用户的数据进行有效的存储以及读取.我们举个例子,现在我们使用app,当我们登陆一个账号的时候选择记住密码软件就会记住我们的账号以及密码,我们退出当前账号,就可以直 ...

  3. Numpy 用于数组的文件输入和输出

    将数组以二进制格式保存 np.save 和np.load 是读写磁盘数组数据的两个主要函数.默认情况下,数组是以未压缩的原始二进制格式进行保持在扩展名 为.npy的文件中的 如果文件路径末尾没有扩展名 ...

  4. (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取

    系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...

  5. Numpy用于数组的文件输入输出

    这一章比较简单,内容也比较少.而且对于文件的读写,还是使用pandas比较好.numpy主要是读写文本数据和二进制数据的. 将数组以二进制的格式保存到硬盘上 主要的函数有numpy.save和nump ...

  6. php基础系列之 数据的存储和读取

    ·文件处理 ·写入一个文件 1,打开这个文件.如果这个文件不存在,需要先创建它 2,将数据写入这个文件 3,关闭这个文件 ·从一个文件读出数据 1,打开这个文件.如果这个文件不能打开(例如,文件不存在 ...

  7. 实现JSON数据的存储和读取

    事前准备: //创建一个Crime类 public class Crime { private String mTitle; private UUID mUUID; private Date mDat ...

  8. json数据的存储与读取

    1.  json数据格式: data = [ {"key1":"xxx","item":"ddd"}, {"k ...

  9. numpy中文件的存储和读取-嵩天老师笔记

    numpy中csv文件的存储和读取 CSV文件:(Comma‐Separated Value, 逗号分隔值) 一维和二维数组 存储 np.savetxt(frame,array,fmt='%.18e' ...

随机推荐

  1. margin:0 auto为何会居中?

    margin: 0 auto;为何会居中呢??? 一开始的学习html的时候,就是只知道块级元素margin:0 auto就能居中 但是后来就很好奇 margin: auto 0;为何不能垂直居中? ...

  2. 使用Typescript重构axios(二十)——请求取消功能:实现第一种使用方式

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  3. Linux Shell | 解析xml节点

    01 xml文件 # user.xml <user> <name>Toy</name> <sex>man</sex> <room/&g ...

  4. 猫眼电影App抓包获取评论数据接口

     之前在CSDN程序人生公众号上看到了这篇文章<邪不压正>评分持续走低,上万条网友评论揭秘,是救救姜文还是救救观众?,文中提到了通过抓包猫眼App发现了评论的数据接口:http://m.m ...

  5. jquery鼠标点击穿透的解决方法

    jquery鼠标点击穿透的解决方法 <pre><div class="showcontainer" style="background:#000;dis ...

  6. Docker(二) Dockerfile 使用介绍

    前言 图解Docker 镜像.容器和 Dockerfile 的关系: 一.Dockerfile的概念 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包 ...

  7. mybatis什么时候必须指定jdbcType

    #{property,javaType=int,jdbcType=NUMERIC}如果一个列允许 null 值,并且会传递值 null 的参数,就必须要指定 JDBC Type

  8. 力扣(LeetCode)整数反转 个人题解

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: ...

  9. 交叉编译sqlcipher

    1. 小心预编译宏SQLITE_HAS_CODEC 2. openssl在不同License下,导出的符号不对等.(错了,1.1.0后api发生变化,小心选用openssl版本) 3, ac使用了li ...

  10. javescript 的 对象

    一,定义:对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合在一起,可通过名字(name/作为属性名)访问这些值.即属性的无序集合. 关键是name属性名 ...