标签分类
技术文章
当前位置:主页 > 计算机编程 > python > numpy的文件存储.npy .npz文件详解

numpy的文件存储.npy .npz文件具体方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:145

numpy的文件存储.npy .npz文件详解

这篇文章主要知识点是关于numpy,文件存储,npy,npz,numpy的文件存储.npy .npz文件详解,python numpy实现文件存取的示例代码 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python数据可视化
Python数据可视化影印中文版
  • 类型:Python大小:92.7 MB格式:PDF出版:机械工业出版社作者:科斯·拉曼
立即下载

更多相关的学习资源可以参阅 程序设计电子书数据库电子书、等栏目。

Numpy能够读写磁盘上的文本数据或二进制数据。

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

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

import numpy as np
a=np.arange(5)
np.save('test.npy',a)

这样在程序所在的文件夹就生成了一个test.npy文件

将test.npy文件中的文件读出来

import numpy as np
a=np.load('test.npy')
print(a)

注:保存为Numpy专用的二进制格式后,就不能用notepad++等打开看了(乱码)。因此这种方式建议在不需要看保存文件内容的情况下使用。

np.savez

如果你想将多个数组保存到一个文件中的话,可以使用numpy.savez函数。savez函数的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为arr_0, arr_1, …。

savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容:

import numpy as np
a=np.arange(3)
b=np.arange(4)
c=np.arange(5)
np.savez('array_save.npz',a,b,c_array=c)

这样程序所在文件夹就生成了一个array_save.npz文件

把npz文件中的数据读出来

import numpy as np
A=np.load('array_save.npz')
print(A['arr_0'])
print(A['arr_1'])
print(A['c_array'])

以上这篇numpy的文件存储.npy .npz 文件详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

python numpy实现文件存取的示例代码

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

一,tofile()和fromfile()

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

python numpy实现文件存取的示例代码

从上面的例子可以看出,在读入数据时:需要正确设置dtype参数,并修改数组的shape属性才能得到和原始数据一致的结果。无论数据的排列顺序是C语言格式还是Fortran语言格式,tofile()都统一使用C语言格式输出。此外如果指定了sep参数,则fromfile()和tofile()将以文本格式对数组进行输入输出。sep参数指定的是文本数据中数值的分隔符。

二.save()和load()

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

python numpy实现文件存取的示例代码

python numpy实现文件存取的示例代码

三.savetxt()和loadtxt()

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

python numpy实现文件存取的示例代码

python numpy实现文件存取的示例代码

python numpy实现文件存取的示例代码

四.文件对象file

python numpy实现文件存取的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到vue项目中使用md5加密以及、 解决axios.interceptors.respon、 儿童python编程入门书籍推、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:python生成密码字典的实例代码方法

下一篇:Python实现的简单排列组合算法的实例讲解

展开 +

收起 -

学习笔记
网友NO.457302

对numpy中向量式三目运算符详解

如果用到数据筛选功能,可以使用x if condition else y的逻辑实现。如果使用的是纯Python,可以使用不断迭代的方式对每一组元素组合进行相应的判断筛选。不过,如果使用numpy中的向量化计可以大大加速运算的过程。 在numpy中有一个这个三目运算的向量版本numpy.where。where方法可以接收三个参数,第一个参数为条件向量,而第二、第三个参数可以是矩阵也可以是标量。接下来做一下相应功能的纯Python功能实现以及向量方式实现。 记录如下: In [76]: xarr = np.array([1.1,1.2,1.3,1.4,1.5])In [77]: yarr = xarr + 1In [78]: xarrOut[78]: array([ 1.1, 1.2, 1.3, 1.4, 1.5])In [79]: yarrOut[79]: array([ 2.1, 2.2, 2.3, 2.4, 2.5])In [80]: cond = np.array([True,False,True,True,False])In [81]: condOut[81]: array([ True, False, True, True, False], dtype=bool)In [82]: result1 = [(x if c else y) for x,y,c in zip(xarr,yarr,cond)]In [83]: result1Out[83]: [1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]In [84]: result2 = np.where(cond,xarr,yarr)In [85]: result2Out[85]: array([ 1.1, 2.2, 1.3, 1.4, 2.5]) 从浮点表示上,两者有一点点小小的差异,在小数点后多位,通常在数值表示上可以忽略。不过,这里还是要进行一下两个结果的一致性判断,因为之前也看到过Python在浮点表达上因为机器而产生的差异。 测试的结果如下: In [87]: result1 == result2Out[87]: array([ True……

网友NO.158914

numpy下的flatten()函数用法详解

flatten是numpy.ndarray.flatten的一个函数,其官方文档是这样描述的: ndarray.flatten(order='C') Return a copy of the array collapsed into one dimension. Parameters: order : {‘C', ‘F', ‘A', ‘K'}, optional ‘C' means to flatten in row-major (C-style) order. ‘F' means to flatten in column-major (Fortran- style) order. ‘A' means to flatten in column-major order if a is Fortran contiguous in memory, row-major order otherwise. ‘K' means to flatten a in the order the elements occur in memory. The default is ‘C'. Returns: y : ndarray A copy of the input array, flattened to one dimension. 即返回一个折叠成一维的数组。但是该函数只能适用于numpy对象,即array或者mat,普通的list列表是不行的。 例子: 1、用于array对象 from numpy import * a=array([[1,2],[3,4],[5,6]]) ###此时a是一个array对象aarray([[1,2],[3,4],[5,6]])a.flatten()array([1,2,3,4,5,6]) 2、用于mat对象 a=mat([[1,2,3],[4,5,6]]) amatrix([[1, 2, 3], [4, 5, 6]])br a.flatten()brmatrix([[1, 2, 3, 4, 5, 6]])br 3、但是该方法不能用于list对象 a=[[1,2,3],[4,5,6],['a','b']][[1, 2, 3], [4, 5, 6], ['a', 'b']] a.flatten() ###报错Traceback (most recent call last):File "stdin", line 1, in moduleAttributeError: 'list' object has no attribute 'flatten' 想要list达到同样的效果可以使用列表表达式: [y for x in a for y in x][1, 2, 3, 4, 5, 6, 'a', 'b'] 4、用在矩阵 a = [[1,3],[2,4],[3,5]] a = mat(a) y = a.flatten() ymatrix([[1,……

网友NO.701776

mac安装pytorch及系统的numpy更新方法

安装Pytorch 在pytorch官网上选择相应选项,我的是OS X, pip, python2.7, none CUDA。 (之所以用python2.7只是觉得现在还有好多代码用2.7写的,用3+版本经常会由于语法更新而报错。而且用3+的话sublime还要配下python3 的building system。。。。。。) 打开terminal,输入: sudo pip install http://download.pytorch.org/whl/torch-0.3.0.post4-cp27-none-macosx_10_6_x86_64.whl sudo pip install torchvision (以防报错,在前面加个sudo吧)正常情况下过一会就装好了,很简单的~ 安装pip 之前不会弄,装的是python3.6, 安装第三方程序都用的pip3,结果这次用pip就报错了。索性把pip也装了 sudo easy_install pip 更新mac系统的numpy # !/usr/bin/env python# -*- coding: utf-8 -*-import torchx=torch.Tensor(2,3)print (x) 我用上面程序验证Pytorch有没有安装好的时候,发现程序报错如下: module compiled against API version 0xa but this version of numpy is 0x9 查了才知道这是mac系统自带的numpy版本过低,使用pip命令安装的numpy是存放在sie-package下边,而自带的numpy在extra目录下面。系统自带的Python会调用extra目录下的numpy。 所以有三种解决办法: - 更改参数路径,让Python调用sie-package下边的numpy - 删掉系统自带的numpy,这样就不用改环境变量,Python会引用sie-package下边的numby - 升级系统自带的numpy 我想一劳永逸,选择升级系统自带的numpy,在ter……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明