numpy 保存文件及读取

一、保存单个数组与多个数组为二进制文件

  1. 单个数组保存
1 # 二进制文件(单个数组)
2 data = np.random.random_sample([10,5])   #生成二维数据
3 data

1 import os
2 if not os.path.exists('./tmp/'):
3     os.mkdir('./tmp/')
4 np.save('./tmp/test1.npy', data)   #保存单个数组
1 # 读取npy二进制文件(后缀名不能漏)
2 np.load('./tmp/test1.npy')

2.多个数组保存

1 # 生成数组
2 data1 = np.random.randint(80,100,size = (3,5))
3 data2 = np.array(['a', 'b', 'c', 'd', 'e'])
4 data1

1 #将data1、data2分别命名为score、subject保存在文件中
2 np.savez('./tmp/test2.npz', 
3          score=data1, subject=data2) 
4 
5 # 加载文件及查看数组名
6 data_read = np.load('./tmp/test2.npz') 
7 data_read.files

1 data_read['subject']  #以字典方式调用文件中数组

二、将数据保存为txt,csv文件

1.保存为txt,csv文件

# 文本文件
np.savetxt('./tmp/test3.txt', data,
           fmt='%.2f',   # 数据保存形式
           delimiter=',')  # 分割符号


np.savetxt('./tmp/test3.csv', data,
           fmt='%.2f', 
           delimiter=',')

2.读取文件

np.loadtxt('./tmp/test3.csv', delimiter=',')

 3.保存的文件存在缺失值时,要用genfromtxt调用。np.loadtxt提供的参数相对比较少,所以很多情况无法处理; np.genfromtxt参数相对较大,能处理如缺失值等问题

1 a = np.array([[9, None, 90], [9, None, 90]])
2 np.savetxt('./tmp/test4.txt', a, fmt='%s')
3 
4 np.loadtxt('./tmp/test4.txt', delimiter=' ')

存在缺失值时报错:

1 np.genfromtxt('./tmp/test4.txt', 
2               defaultfmt='%s')

posted on 2020-04-02 10:17  LiErRui  阅读(365)  评论(0)    收藏  举报

导航