Numpy数组数据文件的读写

一、引言

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

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

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]])
时间: 2024-08-08 18:54:39

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

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

日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beangroup> 3 <javabean> 4 <data name='code'>A001</data> 5 <data name='name'>

R读书笔记一:变量,向量,数组,矩阵,数据框,读写文件,控制流

R读书笔记一:变量,向量,数组,矩阵,数据框,读写文件,控制流 1.创建向量和矩阵 函数c( ), length( ), mode( ), rbind( ), cbind( ) 1)创建向量,求向量长度,向量类型. > x1=c(2,4,6,8,0) > x2=c(1,3,5,7,9) > length(x1) [1] 5 > mode(x1) [1] "numeric" > x1 [1] 2 4 6 8 0 > x1[3] [1] 6 > a

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

这一章比较简单,内容也比较少.而且对于文件的读写,还是使用pandas比较好.numpy主要是读写文本数据和二进制数据的. 将数组以二进制的格式保存到硬盘上 主要的函数有numpy.save和numpy.load.默认情况下,数组是以未压缩的二进制保存为.npy的文件. In [1]: import numpy as np In [2]: arr = np.arange(10) In [3]: arr Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) I

python里读写excel等数据文件的几种常用方式

python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python内置方法(read.readline.readlines) read() : 一次性读取整个文件内容.推荐使用read(size)方法,size越大运行时间越长 readline() :每次读取一行内容.内存不够时使用,一般不太用 readlines() :一次性读取整个文件内容,并按行返回到lis

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

http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保

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

今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: 方式一: 字节数组写入文件(不追加) //将byte数组写入文件 public void createFile(String path, byte[] content) throws IOException { FileOutputStream fos = new FileOutputStream(

探究php的memcache和memcached扩展读写数组数据不相兼容原因

最近公司许多团队进行升级php7,目前支持php7读取mc的扩展只有memcached. 但是公司许多项目都会共用一个mc集群来存取用户session数据,存的时候是登陆时用memcache扩展以array的形式写进去,读的时候自然是用memcache扩展以array的形式读出来. 但是现在只能使用memcached进行读取.但是据我所知两者读取array形式的数据是互不兼容的,因此想探究一下究竟是为什么. 验证memcache扩展和memcached扩展读写数组数据是否不相兼容 测试脚本: <

计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。

//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了值传递. 1 #include <stdlib.h> 2 #include <stdio.h> 3 #define N 10 4 double fun(double x[],double *av) 5 { int i,j; double d,s; 6 s=0; 7 for(i=0; i

MATLAB中TXT数据文件读取并写入元胞数组的方法与步骤

一. TXT数据文件读取 Data = load('train.txt');   %简单的文件读取,这时在工作区可以看到导入的大数据变量Data 二.大数据变量Data装入元胞数组中 D = cell(5, 1);   %元胞的定义,定义一个5*1的元胞D D{1, 1} = rand(223, 26);   %初始化第1行第1列的元胞为223*26的一个数组,数组元素为随机值 D{1, 1} = Data(1: 1+222, 1: 1+25);  %将大数据变量的223*26的数值赋值(装入)