NumPy IO

Numpy 可以读写磁盘上的文本数据或二进制数据。
NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。
npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。
常用的IO函数有:

  • load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中。
  • savze() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中。
  • loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等)

numpy.save()

numpy.save() 函数将数组保存到以 .npy 为扩展名的文件中。

numpy.save(file, arr, allow_pickle=True, fix_imports=True)

参数说明:

  • file:要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上。
  • arr: 要保存的数组
  • allow_pickle: 可选,布尔值,允许使用 Python pickles 保存对象数组,Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。
  • fix_imports: 可选,为了方便 Pyhton2 中读取 Python3 保存的数据。
    实例
# -*- coding: UTF-8 -*-import numpy as npa = np.array([1,2,3,4,5])#保存到outfile.npy文件上
np.save('outfile.npy',a)#保存到outfile2.npy文件上,如果文件路径末尾没有扩展名.npy,该扩展名会被自动加上
np.save('outfile2',a)

输出结果:


可以看出文件是乱码的,因为他们是NumPy专用的二进制格式后的数据。
我们可以使用load()函数来读取数据就可以正常显示了。
实例

import numpy as npb = np.load('outfile.npy')
print(b)

输出结果为:

[1 2 3 4 5]

numpy.savez

numpy.savez() 函数将多个数组保存到以 npz 为扩展名的文件中。

numpy.savez(file,*args,**kwds)

参数说明:

  • file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。
  • args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。
  • kwds: 要保存的数组使用关键字名称。
    实例
import numpy as npa = np.array([[1,2,3],[4,5,6]])
b = np.arange(0,1.0,0.1)
c = np.sin(b)
#c 使用了关键字参数sin_array
np.savez("runoob.npz", a, b, sin_array = c)
r = np.load("runoob.npz")
print(r.files)   #查看各个数组名称
print(r["arr_0"])  #数组a
print(r["arr_1"])  #数组b
print(r["sin_array"]) #数组b

输出结果为:

['sin_array', 'arr_0', 'arr_1']
[[1 2 3][4 5 6]]
[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
[0.         0.09983342 0.19866933 0.29552021 0.38941834 0.479425540.56464247 0.64421769 0.71735609 0.78332691]

savetxt()

savetxt() 函数是以简单的文本文件格式存储数据,对应的使用 loadtxt() 函数来获取数据。

np.loadtxt(FILENAME, dtype=int, delimiter=' ')
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。
实例

import numpy as npa = np.array([1,2,3,4,5])
np.savetxt('out.txt',a)
b = np.loadtxt('out.txt')print(b)

输出结果为:

[1. 2. 3. 4. 5.]

其中out.txt的内容如下:

使用 delimiter 参数:
实例

import numpy as npa = np.arange(0, 10, 0.5).reshape(4, -1)
np.savetxt("out.txt", a, fmt="%d", delimiter=",")  # 改为保存为整数,以逗号分隔
b = np.loadtxt("out.txt", delimiter=",")  # load 时也要指定为逗号分隔
print(b)

输出结果为:

这里是引用

[[0. 0. 1. 1. 2.][2. 3. 3. 4. 4.][5. 5. 6. 6. 7.][7. 8. 8. 9. 9.]]

B17_NumPy IO(save,load,savez,loadtxt,savetxt)相关推荐

  1. R语言保存加载工作空间或者工作空间数据对象实战(Save Load RData Workspace)

    R语言保存加载工作空间或者工作空间数据对象实战(Save & Load RData Workspace) 目录 R语言保存加载工作空间或者工作空间数据对象实战(Save & Load ...

  2. 【转】深入分析JAVA IO(BIO、NIO、AIO)

    IO的基本常识 1.同步 用户进程触发IO操作并等待或者轮询的去查看IO操作是否完成 2.异步 用户触发IO操作以后,可以干别的事,IO操作完成以后再通知当前线程继续处理 3.阻塞 当一个线程调用 r ...

  3. java中的三种IO(BIO、NIO、AIO)

    IO 阻塞和非阻塞主要指的是访问 IO 的线程是否会阻塞(或者说是等待) 线程访问资源,该资源是否准备就绪的一种处理方式 BIO(传统的IO) BIO是同步阻塞式的IO,以流的方式处理数据(效率低) ...

  4. swift 导出测试包(Save for Ad Hoc Deployment)卡在compile bitcode处问题

    如图取消Rebuild from bitcode选中速度会快很多 转载于:https://www.cnblogs.com/kunH/p/7275148.html

  5. [转载] 学Python的笔记(在网上自学的总结)

    参考链接: Python中的str()vs repr() 壹.简单入门(安装Python就不说啦,仅Windows系统) 1.Python的交互模式:Python大小写敏感 注意区分命令模式和Pyth ...

  6. R语言构建xgboost模型:模型的保存(xgb.save)和加载(xgb.load)、或者保存为R二进制文件(xgb.save.raw R binary vector)

    R语言构建xgboost模型:模型的保存(xgb.save)和加载(xgb.load).或者保存为R二进制文件(xgb.save.raw,R binary vector) 目录

  7. JavaSE——IO(下)(Properties类、序列化与反序列化)

    第3节 IO(下) 一..properties文件与Properties类 1.1 .properties文件介绍 .properties文件一种属性文件,以键值对 的格式存储内容,在Java中可以使 ...

  8. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  9. IO流的小细节(很小很细很重要)

    Java中的IO流(一): https://blog.csdn.net/Veer_c/article/details/103833045 Java中的IO流(二): https://blog.csdn ...

最新文章

  1. 内存回收的一些基本方法
  2. 黑客用python还是ruby-请问为什么我选择了Ruby而不是Python?
  3. 设计模式之装饰模式的学习
  4. 服务的默认端口_Informatica端口管理
  5. android webviwe 头布局,Android布局问题,带有WebView下方的按钮
  6. 【计算机系统设计】学习笔记(1)03,04
  7. 基于matlab边缘提取的几种方法的比较
  8. java 线程的销毁_Java如何检查线程组是否已被销毁?
  9. OV摄像头SCCB通信协议
  10. Apache禁止指定的user_agent、指定目录被访问
  11. python 更换列名
  12. 月均数据_三季度前20强券商私募资管月均规模下降逾7000亿元 这5家主动规模占比已超50%...
  13. 用Python分析北京蛋壳公寓租房数据
  14. 解决pycharm中中文列表输出'\xe5\xa4\xa7\xe8\x92\x9c'之类的字符串
  15. ABAP_各模块实用底表
  16. ENVI中操作出现Error :array dimensions must be greater than 0错误的解决方法
  17. Git版本回退的两种方式_艾孜尔江撰
  18. 机器视觉定位入门三步走-第一步
  19. VS2017项目配置X86改配置x64位
  20. android布局的效率对比,Android使用ViewStub提高布局性能

热门文章

  1. 自定义分页模板(银角大王版)
  2. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)
  3. Python下tornado实现webSocket实现
  4. python学习教程,12306火车票抢票系统
  5. JavaScript实现articulation-points(关键点)(割点)算法(附完整源码)
  6. boost::coroutine模块实现相同的边缘的测试程序
  7. GDCM:gdcm::EquipmentManufacturer的测试程序
  8. Boost:移动容器的测试程序
  9. Boost:由内部绑定的值返回的智能指针的测试程序
  10. Boost:bimap双图信息的测试程序