python利用numpy存取文件案例教程

     NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件

1. tofile()和fromfile()

  • tofile()将数组中的数据以二进制格式写进文件
  • tofile()输出的数据不保存数组形状和元素类型等信息
  • fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改
import numpy as np

# 随机生成12个数字并将其有一维转换成3*4的矩阵形式
a = np.arange(12)
print("一维数组:",a)
a.shape = 3,4
print("3*4的矩阵:",a)

# 将数组中的数据以二进制格式写入到文件
a.tofile('a.bin')
# fromfile在读取numpy文件时需要自己指定数据格式,并且原格式并为保存
b1 = np.fromfile('a.bin', dtype=np.float) # 按照float读取数据
b2 = np.fromfile('a.bin', dtype=np.int) # 按照int读取数据
b3 = np.fromfile('a.bin', dtype=np.int32) # 按照int32读取数据
print('float格式b1:{},\nint格式b2:{},\nint32格式b3:{}'.format(b1,b2,b3))

b3.shape = 3,4
print('b3:',b3)

2. save() 和 load(),savez()

  • NumPy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息
  • 如果想将多个数组保存到一个文件中,可以使用savez()
  • savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名
  • 非关键字参数传递的数组会自动起名为arr_0、arr_1、...。
  • savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同
  • load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容
import numpy as np

a = np.arange(12)
a.shape = 3,4
# 将数据存储为npy/npz
np.save('a.npy', a)
np.save('a.npz', a)
c = np.load('a.npy')
print('save-load:',c)

# 存储多个数组
b1 = np.array([[6, 66, 666],[888, 88,8]])
b2 = np.arange(0, 1.0, 0.1)
c2 = np.sin(b2)
np.savez('result.npz', b1,b2,sin_arry = c)
c3 = np.load('result.npz') # npz文件时一个压缩文件
print(c3)
print("数组b1:{}\n数组b2:{}\n数组sin_arry:{}".format(c3['arr_0'],c3['arr_1'],c3['sin_arry']))

 

3. savetxt() 和 loadtxt()

  • 读写1维和2维数组的文本文件
  • 可以用它们读写CSV格式的文本文件

用这种方式来对数据进行存储,方便深度学习中, 保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名。算是get到了另外一种好的存储数据的方式

参考:https://www.cnblogs.com/wushaogui/p/9142019.html

https://www.cnblogs.com/dmir/p/5009075.html

到此这篇关于python利用numpy存取文件案例教程的文章就介绍到这了,更多相关python利用numpy内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中sqllite插入numpy数组到数据库的实现方法

    sqllite里面并没有与numpy的array类型对应的数据类型,通常我们都需要将数组转换为text之后再插入到数据库中,或者以blob类型来存储数组数据,除此之外我们还有另一种方法,能够让我们直接以array来插入和查询数据,实现代码如下 import sqlite3 import numpy as np import io def adapt_array(arr): out = io.BytesIO() np.save(out, arr) out.seek(0) return sqlite

  • python图像处理基本操作总结(PIL库、Matplotlib及Numpy)

    一.PIL库对图像的基本操作 1.读取图片 PIL网上有很多介绍,这里不再讲解.直接操作,读取一张图片,将其转换为灰度图像,并打印出来. from PIL import Image import matplotlib.pyplot as plt pil_im = Image.open("empire.jpeg") pil_image = pil_im.convert("L") plt.gray() plt.imshow(pil_image) plt.show() 输

  • Python NumPy中diag函数的使用说明

    NumPy包中的内置diag函数很有意思. 假设创建一个1维数组a,和一个3*3数组b: import numpy as np a = np.arange(1, 4) b = np.arange(1, 10).reshape(3, 3) 结果如下: >>> a array([1, 2, 3]) >>> b array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 使用diag函数,看一看结果: >>> np.diag(a) ar

  • Python NumPy灰度图像的压缩原理讲解

    灰度图像是对图像的颜色进行变换,如果要对图像进行压缩该怎么处理呢? 1.矩阵运算中有一个概念叫做奇异值和特征值. 设A为n阶矩阵,若存在常数λ及n维非零向量x,使得Ax=λx,则称λ是矩阵A的特征值,x是A属于特征值λ的特征向量. 一个矩阵的一组特征向量是一组正交向量. 2.即特征向量被施以线性变换 A 只会使向量伸长或缩短而其方向不被改变. 特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之

  • Python多进程共享numpy 数组的方法

    为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3].就需要三个指针和三个整数对象.对于数值运算来说,这种结构显然不够高效.     Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组(在TensorFlow里面偏向于矩阵理解),也没有各种运算函数.因而不适合数值运算.     NumPy的出现弥补了这些不足. 引用:https://zhuanl

  • Python机器学习三大件之一numpy

    一.前言 机器学习三大件:numpy, pandas, matplotlib Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组. Numpy支持常见的数组和矩阵操作.对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多. Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器. NumPy提供了一个N维数组类型ndarray import numpy as np score = np.arr

  • python numpy中multiply与*及matul 的区别说明

    1.对于矩阵(matrix)而言 multiply是对应元素相乘,而 * .np.matmul() 函数 与 np.dot()函数 相当于矩阵乘法(矢量积),对应的列数和行数必须满足乘法规则:如果希望以数量积的方式进行,则必须使用 np.multiply 函数,如下所示: a = np.mat([[1, 2, 3, 4, 5]]) b = np.mat([[1,2,3,4,5]]) c=np.multiply(a,b) print(c) 结果是 [[ 1 4 9 16 25]] a = np.m

  • 浅谈Python numpy创建空数组的问题

    一.问题描述: 有一个shape为(308, 2)的二维数组,以及单独的一个数字,需要保存到csv文件中,这个单独的数字让其保存到第3列第一行的位置. 二.具体的实现: 首先要想把一个(308, 2)的二维数组和一个数字给拼接起来,直接拼接没办法实现,因为行数和列数都不同的两个ndarry是无法拼接的(此处按照目前我学的理解,是无法直接拼接的,如果可以的话,麻烦评论一下). 然后我首先想到的解决方法就是先建一个(308,1)的二维数组,然后令这个二维数组的第一个元素设置成那个数字,然后进行拼接,

  • python利用numpy存取文件案例教程

         NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件 1. tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 import

  • python利用numpy存取文件的方式

    NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件 1. tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 import nump

  • python numpy存取文件的方式

    NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件 1. tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 import nump

  • Python利用递归实现文件的复制方法

    如下所示: import os import time from collections import deque """ 利用递归实现目录的遍历 @para sourcePath:原文件目录 @para targetPath:目标文件目录 """ def getDirAndCopyFile(sourcePath,targetPath): if not os.path.exists(sourcePath): return if not os.pa

  • Python利用numpy实现三层神经网络的示例代码

    本文主要介绍了Python利用numpy实现三层神经网络的示例代码,分享给大家,具体如下: 其实神经网络很好实现,稍微有点基础的基本都可以实现出来.主要都是利用上面这个公式来做的. 这是神经网络的整体框架,一共是三层,分为输入层,隐藏层,输出层.现在我们先来讲解下从输出层到到第一个隐藏层. 使用的编译器是jupyter notebook import numpy as np #定义X,W1,B1 X = np.array([1.0, 0.5]) w1 = np.array([[0.1, 0.3,

  • python使用NumPy文件的读写操作

    一.使用NumPy读写文本文件 在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件.CSV格式文件.二进制格式文件和多维数据文件等. 1.将1维或2维数组写入TXT文件或CSV格式文件 在NumPy中,使用savetxt()函数可以将1维或2维数组写入后缀名为txt或csv的文件.函数格式为: **numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n', header='', foot

  • python之OpenCV的作用以及安装案例教程

    OpenCV的作用及安装 OpenCV简介 OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.提供了Python.Ruby.MATLAB等语言的接口,并且实现了图像处理和计算机视觉方面的很多通用算法,可以给开发者调用. OpenCV应用领域 计算机视觉领域方向 人机互动 物体识别 图像分割 人脸识别 动作识别 运动跟踪 机器人 运动分析 机器视觉 结构分析 汽车安全驾驶 OpenCV涉及的技术 图像数据的操作: 分配.释放.

  • Python基础之标准库和常用的第三方库案例教程

    Python基础:标准库和常用的第三方库 Python的标准库有: 名称 作用 datetime 为日期和时间处理同时提供了简单和复杂的方法. zlib 直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile. random 提供了生成随机数的工具. math 为浮点运算提供了对底层C函数库的访问. sys 工具脚本经常调用命令行参数.这些命令行参数以链表形式存储于 sys 模块的 argv 变量. glob 提供了一个函数用于从目录通配符搜索中生成文

  • 利用numpy和pandas处理csv文件中的时间方法

    环境:numpy,pandas,python3 在机器学习和深度学习的过程中,对于处理预测,回归问题,有时候变量是时间,需要进行合适的转换处理后才能进行学习分析,关于时间的变量如下所示,利用pandas和numpy对csv文件中时间进行处理. date (UTC) Price 01/01/2015 0:00 48.1 01/01/2015 1:00 47.33 01/01/2015 2:00 42.27 #coding:utf-8 import datetime import pandas as

  • python调用pyaudio使用麦克风录制wav声音文件的教程

    python的pyaudio可以进行录音,播放,生成wav文件等等,WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种.在我们研究语音识别,自然语言处理的过程中,常常会使用到它,比如我们调用百度语音识别所以我们首先研究一下pyaudio库的安装与使用. 安装: pip install pyaudio 调用pyaudio使用麦克风录制声音: python中的pyaudio库可以直接通过麦克风录制声音,我们可以通过调用该库,

随机推荐