python io_NumPy IO

NumPy IO

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

NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。

npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。

常用的 IO 函数有:

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

savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .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 保存的数据。

实例

importnumpyasnpa=np.array([1,2,3,4,5])# 保存到 outfile.npy 文件上np.save('outfile.npy',a)# 保存到 outfile2.npy 文件上,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上np.save('outfile2',a)

我们可以查看文件内容:

$ cat outfile.npy

?NUMPYv{'descr': '

$ cat outfile2.npy

?NUMPYv{'descr': '

可以看出文件是乱码的,因为它们是 Numpy 专用的二进制格式后的数据。

我们可以使用 load() 函数来读取数据就可以正常显示了:

实例

importnumpyasnpb=np.load('outfile.npy')print(b)

输出结果为:

[1 2 3 4 5]

np.savez

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

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

参数说明:file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。

args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。

kwds: 要保存的数组使用关键字名称。

实例

importnumpyasnpa=np.array([[1,2,3],[4,5,6]])b=np.arange(0,1.0,0.1)c=np.sin(b)# c 使用了关键字参数 sin_arraynp.savez("runoob.npz",a,b,sin_array=c)r=np.load("runoob.npz")print(r.files)# 查看各个数组名称print(r["arr_0"])# 数组 aprint(r["arr_1"])# 数组 bprint(r["sin_array"])# 数组 c

输出结果为:

['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.47942554

0.56464247 0.64421769 0.71735609 0.78332691]

savetxt()

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

np.loadtxt(FILENAME, dtype=int, delimiter=' ')

np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

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

实例

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

输出结果为:

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

使用 delimiter 参数:

实例

importnumpyasnpa=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.]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340200.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 14:instanceof的模式匹配

Java 14引入了pattern Matching for instanceof (另一种预览语言功能) ,从而消除了在使用instanceof时进行强制转换的需要。 例如,考虑以下代码: if (obj instanceof String) { String s (String) obj; System.out.pr…

centos7 mysql启动后端口_centos7 修改mysql5.7默认端口后启动异常

关闭selinux的方法有两种:临时关闭和永久关闭。查看selinux的状态:sestatus[root162-219-29-3 ~]# sestatusSELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: targetedCurrent mode: e…

computed怎么使用_Vuex 基本使用

简单介绍iPhone X 是 iPhone, Vuex 并不是 Vue.我们查看官方文档可以知道:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。怎么理解呢?就拿我两位数的资产的银行卡来说吧,基本的存钱取钱,就是状态管理。怎么用我们将以一个简…

自然数 素数 质数_在Java中获取素数的无限列表

自然数 素数 质数一个常见的问题是确定数字的素因式分解。 蛮力方法是审判部门( 维基百科 , 可汗学院 ),但是如果必须考虑多个数字,这需要大量的浪费工作。 一种广泛使用的解决方案是Eratosthenes筛( 维基…

mysql 大数据 join_MySQL JOIN算法原理

MySQL的JOIN相关操作,是通过“嵌套循环连接算法,NLJ”或者该算法的优化变体“块嵌套循环连接算法,BNLJ”来实现的。##### 嵌套循环连接算法两个表join时,可以简单理解为两层for循环,外层循环一般称作驱动表&#xff0c…

windows安装python3步骤_Windows下python3和python2安装与一起使用

一、python2和python3安装 2、安装步骤,直接双击运行,记得勾选添加环境变量就可以。图片1.png 3、安装已经选择了添加这个环境变量,所以不用再去配置。 如果没有勾选,得自己去设置。 鼠标右键我的电脑 -> 属性 -> 点击高级系…

mysql ondelete_MySQL on delete cascade语句

在本教程中,您将学习如何使用MySQL ON DELETE CASCADE引用操作来执行外键从多个相关表中删除数据。在上一个教程中,我们学习了如何使用单个DELETE语句从一个或多个相关表中删除数据。但是,MySQL提供了一种更为有效的方法,称为ON D…

您想了解的所有Throwable

本文是有关异常的教程。 但不是通常的一种。 其中有许多内容可以告诉您异常的含义,如何抛出异常,捕获异常,已检查异常与运行时异常之间的区别,等等。 没有必要了。 这对您来说也很无聊。 如果没有,那么请阅读其中的一本…

python构建二叉树_BinaryTree:学习二叉树的Python库

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。简介: 您是否在为考试、作业或技术面试学习二叉树? Binarytree是一个Python库,它通过一个简单的API生成二叉树,可以进行检查和操作。它让您…

mysql union as 注入_sql注入入门 之 mysql 常规注入 [ union方式 ]

1,常规数字型 mysql 实例注入点,如下:1https://www.vuln.com/md_materia_profile_view.php?viewid22,依旧先尝试下经典的单引号,如下,虽然没暴露出明显的数据库报错信息,但我们发现,此时返回的页面已经异常了,经验判断,十有八九是个注入点,先不管那么多,我们继续1https://www.…

gradle docker_带有Gradle的Docker容器分为4个步骤

gradle docker您是否需要通过Java Web应用程序创建Docker映像? 您在使用Gradle吗? 如果是这样,那么您距Docker nivana仅4步之遥。 对于此示例,我将使用一个简单的Spring Boot应用程序。 您可以在我的名为galoshe的Github存储库中…

mysql数据库连接关闭_解决mysql数据库连接自动关闭问题

MySQL是一个小型关系型数据库管理系统,由于MySQL体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。关于mysql自动关闭服务的现象,可以通过mysql服务器…

python socket编程_Python学习记录-socket编程

1. OSI七层模型详解2. Python socket 什么是 Socket? Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 Python 提供了两个级别访问的网络服务: 低级别的网络服…

REST / HTTP方法:POST与PUT与PATCH

每个HTTP请求都包含一个方法 (有时称为verb ),该方法指示对标识的资源执行的操作。 在构建RESTful Web服务时,HTTP方法POST通常用于创建资源,而PUT用于资源更新。 尽管在大多数情况下这很好,但使用PUT进行…

判断frame是否已创建_类的创建

1. 士兵 许三多 有一把 AK47 2. 士兵 可以开火 3. 枪 能够 发射 子弹 4. 枪 装填 子弹---增加子弹数量 class Gun:def __init__(self,type):self.type type# 刚开始枪没有子弹self.bullet_count 0def __str__(self):return ("%s 已到位" % self.type)def shoot(sel…

mysql 安装盒子_Windows2008 装 MySQL 问题

昨天在2008里装MySQL,遇以了一些问题,装的是mysql-5.6.20-winx64.msi版本,不知道是版本太新还是兼容,还是系统权限配置问题,老是报错,多数是杂乱的错误,这里主要记一下MySQL的错误:安…

@select注解_Mybatis基本知识十七:Mybatis注解式开发-单表注解式开发

上一篇文章:《Mybatis基本知识十六:查询缓存之第三方查询缓存》若文中有纰漏,请多多指正!!!1.前言使用Mybatis进行开发,不仅可以使用mapper配置文件进行开发,也可以使用注解的方式。映射文件中无…

mysql主从切换机制torch_MySQL Replication设置(Master/Slave)实现主从复制

一、Master配置1、my.cnf配置# vim /etc/mysql/mariadb.conf.d/50-server.cnf[mysqld]log-binmysql-bin //[必须]启用二进制日志server-id140 //[必须]服务器唯一ID,默认是1,一般取IP最后一段2、重启mysqlsudo service mysql restart3、在主服务器上建立…

junit测试线程_一个在自己的线程中运行测试的JUnit规则

junit测试线程有时,能够在单独的线程中运行JUnit测试会很有帮助。 特别是在编写与封装的ThreadLocal或类似对象进行交互的集成测试时,这可能会派上用场。 单独的线程将隐式确保每次测试运行都未初始化threadlocal的与线程相关的引用。 这篇文章介绍了提供…

maven servlet配置_第一个Servlet配置

使用IntelliJ IDEA创建一个Simple Maven项目2. Add Framework Support3. 配置Tomcat打开菜单Run -> 选择Edit Configuration 如果侧边栏没有Tomcat,点击“”号 -> 选择“Tomcat Server” -> 选择“Local”,到此画面 ,Apply -> OK4. 在Tomcat…