np 数组转为普通数组_一起学数据分析之NumPy(13)——用于数组的文件输入输出
发布日期:2021-06-24 15:56:35 浏览次数:2 分类:技术文章

本文共 1577 字,大约阅读时间需要 5 分钟。

import numpy as np
2e3f83bd712fbf8c03f211bef652e3e3.png

NumPy能够读写磁盘上的文本数据或二进制数据。当然pandas库中也有一些用于将表格型数据读取到内存中的工具,我们后面也会接触到。

将数组以二进制格式保存到磁盘

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

In [3]:

arr = np.arange(10)np.save('arr', arr)

如果文件路径末尾没有扩展名.npy,系统会自动加上这个扩展名。然后我们就可以通过np.load读取磁盘上的数组:

In [4]:

np.load('arr.npy')

Out[4]:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

我们还可以通过np.savez函数将多个数组保存到一个压缩文件中,将数组以关键字参数的形式传入即可:

In [5]:

np.savez('arrs.npz',a=arr,b=arr)

加载.npz文件时,你会得到一个类似字典的对象,该对象会对各个数组进行延迟加载:

In [6]:

arch = np.load('arrs.npz')

In [7]:

arch['a']

Out[7]:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [8]:

arch['b']

Out[8]:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

存取文本文件

从文件中加载文本是一个非常常见的任务。有时我们需要用np.loadtxt或更为专门化的np.genfromtxt将数据加载到普通的NumPy数组中。 这些函数都有许多选项可以使用:指定各种分隔符、针对特定列的转换器函数、需要跳过的行数。一个简单的逗号分隔文件(CSV)为例:

array_ex.txt

In [11]:

!type array_ex.txt #linux请用!cat
0.580052,0.185730,1.040717,1.1344110.194163,-0.636917,-0.938659,0.124094-0.126410,0.268607,-0.695724,0.047428-1.4844132,0.004176,-0.744203,0.0054872.302869,0.200131,1.670238,-1.881090-0.193230,1.047233,0.482803,0.960334

该文件可以被加载到一个二维数组中,如下所示:

In [12]:

arr = np.loadtxt('array_ex.txt',delimiter=',')arr

Out[12]:

array([[ 0.580052 ,  0.18573  ,  1.040717 ,  1.134411 ],       [ 0.194163 , -0.636917 , -0.938659 ,  0.124094 ],       [-0.12641  ,  0.268607 , -0.695724 ,  0.047428 ],       [-1.4844132,  0.004176 , -0.744203 ,  0.005487 ],       [ 2.302869 ,  0.200131 ,  1.670238 , -1.88109  ],       [-0.19323  ,  1.047233 ,  0.482803 ,  0.960334 ]])

np.savetxt执行的是相反的操作:将数组写到以某种分隔符隔开的文本文件中。

genfromtxt跟loadtxt差不多,只不过它面向的是结构化数组和缺失数据处理。

转载地址:https://blog.csdn.net/weixin_33682804/article/details/112446199 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:绿联网卡转接mac设置_使用徕卡、哈苏相机时,这些问题你遇到过吗?(二)
下一篇:宠物龟 扫地机器人_帮着做家务,新品科沃斯T5扫地机器人比宠物还听话,比老公更好用...

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月24日 14时43分21秒