一、引言

读写数据文件的重要性就不必多说了。

二、读取列表形式数据的文件

1、我们写几行CSV格式(列表形式,两值之间逗号隔开)的数据。

id,height,age
1,175,20
2,168,18
3,177,30
4,142,12

使用genfromtxt()函数读取数据。接收三个参数:文件名,分隔符,是否有列标题

In [4]: a = np.genfromtxt('test.csv',delimiter=',',names=True)

In [5]: a
Out[5]:
array([( 1., 175., 20.), ( 2., 168., 18.), ( 3., 177., 30.),
( 4., 142., 12.)],
dtype=[('id', '<f8'), ('height', '<f8'), ('age', '<f8')])

这个函数的包含两层循环:第一层循环每一行,第二层循环将每一行中的多个值分开后转化,一次插入所创建的数组。优点是能够处理文件中缺失的数据(Nan)。

2、我们试图删除几个元素看看

id,height,age
1,175,
2,168,18
,177,30
4,,12
In [6]: a = np.genfromtxt('test.csv',delimiter=',',names=True)

In [7]: a
Out[7]:
array([( 1., 175., nan), ( 2., 168., 18.), ( nan, 177., 30.),
( 4., nan, 12.)],
dtype=[('id', '<f8'), ('height', '<f8'), ('age', '<f8')])

可见,genfromtxt()函数将缺失的数据填充为nan值(应该是no a number)

3、获取某行或者某列

In [8]: a[0]
Out[8]: ( 1., 175., nan) In [9]: a['height']
Out[9]: array([ 175., 168., 177., nan])

三、二进制文件读写

save()已二进制格式保存数据,参数:文件名(不用后缀),数据。

load()从二进制文件读取数据,参数:文件名(带后缀)

1.执行sava()后,在本目录创建了my_data.npy二进制文件

In [10]: data = np.random.random((3,3))

In [11]: data
Out[11]:
array([[ 0.35264296, 0.81619681, 0.24089159],
[ 0.31230919, 0.14782997, 0.53526203],
[ 0.5505135 , 0.64876637, 0.17538648]]) In [12]: np.save('my_data',data)

2、二进制文件数据读取,以文件名作为参数,并带上.npy扩展名

In [13]: np.load('my_data.npy')
Out[13]:
array([[ 0.35264296, 0.81619681, 0.24089159],
[ 0.31230919, 0.14782997, 0.53526203],
[ 0.5505135 , 0.64876637, 0.17538648]])

Numpy数组数据文件的读写的更多相关文章

  1. Python基础 | 数据文件的读写

    目录 txt txt的读入 txt的写出 csv xls\xlsx 在线网页数据 常用的工具 爬虫的步骤 pdf pdfrw PyPDF2 提取文档信息 word文档 其他统计软件生成文件 本文总结使 ...

  2. 营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理

    摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制? 本文分享自华为云社区<MySQL日志顺序读写及数据文件随机读写原理>,作者:JavaEdge . MySQL在实际工作时候的两 ...

  3. Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)

    日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...

  4. numpy数组之读写文件

    目录 通过 numpy 读写 txt 或 csv 文件 通过 numpy 读写 npy 或 npz 文件 读写 npy 文件 读写 npz 文件 通过 h5py 读写 hdf5 文件 简单读取 通过切 ...

  5. python : 将txt文件中的数据读为numpy数组或列表

    很多时候,我们将数据存在txt或者csv格式的文件里,最后再用python读取出来,存到数组或者列表里,再做相应计算.本文首先介绍写入txt的方法,再根据不同的需求(存为数组还是list),介绍从tx ...

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

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

  7. java byte【】数组与文件读写(增加新功能)

    今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ...

  8. 007 numpy数组文件的存取

    不知道这个有没有用,都整理了一番. 一:数组以二进制格式进行存储 1.说明 np.save与np.load是读写磁盘数组数据的两个重要函数. 默认情况下,数组以压缩的原始二进制格式保存在扩展名为npy ...

  9. MATLAB中文件的读写和数据的导入导出

    http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行 ...

随机推荐

  1. MongoDB 错误汇总

    错误1. ERROR: child process failed, exited with error number 100 可能原因: 1.没有正确关闭服务 2.服务已经启动 3.conf文件的参数 ...

  2. [Swift]LeetCode232. 用栈实现队列 | Implement Queue using Stacks

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  3. [Swift]LeetCode645. 错误的集合 | Set Mismatch

    The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...

  4. [Swift]LeetCode709. 转换成小写字母 | To Lower Case

    Implement function ToLowerCase() that has a string parameter str, and returns the same string in low ...

  5. RabbitMQ 学习笔记

    环境: MacOS 10.14 Node.js 8.9.1 零.背景 目前有个上线应用会接受多个请求,且每个请求的处理时间可能很久,可能到数小时,所以就想采用异步机制,至于复杂的运算就用消息队列(MQ ...

  6. Spring mvc参数类型转换

    1,需求 有时候我们接收到的参数为String类型的,但是我们需要将它们转化为其他类型的如:date类型,枚举类型等等,spring mvc为我们提供了这样的功能. 2,配置文件 在springmvc ...

  7. JVM基础系列第8讲:JVM 垃圾回收机制

    在第 6 讲中我们说到 Java 虚拟机的内存结构,提到了这部分的规范其实是由<Java 虚拟机规范>指定的,每个 Java 虚拟机可能都有不同的实现.其实涉及到 Java 虚拟机的内存, ...

  8. JS对json操作的扩展

    一.JSON对象 JSON是 JavaScript 的原生对象,用来处理 JSON 格式数据.它有两个静态方法:JSON.stringify()和JSON.parse(). JSON.stringif ...

  9. java基础(十三)-----详解内部类——Java高级开发必须懂的

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 为什么要使用内部类 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能 ...

  10. asp.net core 系列 15 中间件

    一.概述 中间件(也叫中间件组件)是一种装配到应用管道以处理请求和响应的软件. 每个组件:(1)选择是否将请求传递到管道中的下一个组件;(2)可以在管道中的下一个组件之前和之后执行工作. 请求委托用于 ...