NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。
numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件
1. tofile()和fromfile()
import numpy as np # 随机生成12个数字并将其有一维转换成3*4的矩阵形式 a = np.arange(12) print("一维数组:",a) a.shape = 3,4 print("3*4的矩阵:",a) # 将数组中的数据以二进制格式写入到文件 a.tofile('a.bin') # fromfile在读取numpy文件时需要自己指定数据格式,并且原格式并为保存 b1 = np.fromfile('a.bin', dtype=np.float) # 按照float读取数据 b2 = np.fromfile('a.bin', dtype=np.int) # 按照int读取数据 b3 = np.fromfile('a.bin', dtype=np.int32) # 按照int32读取数据 print('float格式b1:{},\nint格式b2:{},\nint32格式b3:{}'.format(b1,b2,b3)) b3.shape = 3,4 print('b3:',b3)
2. save() 和 load(),savez()
import numpy as np a = np.arange(12) a.shape = 3,4 # 将数据存储为npy/npz np.save('a.npy', a) np.save('a.npz', a) c = np.load('a.npy') print('save-load:',c) # 存储多个数组 b1 = np.array([[6, 66, 666],[888, 88,8]]) b2 = np.arange(0, 1.0, 0.1) c2 = np.sin(b2) np.savez('result.npz', b1,b2,sin_arry = c) c3 = np.load('result.npz') # npz文件时一个压缩文件 print(c3) print("数组b1:{}\n数组b2:{}\n数组sin_arry:{}".format(c3['arr_0'],c3['arr_1'],c3['sin_arry']))
3. savetxt() 和 loadtxt()
用这种方式来对数据进行存储,方便深度学习中, 保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名。算是get到了另外一种好的存储数据的方式
总结
以上所述是小编给大家介绍的python利用numpy存取文件的方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
7.2.1 逻辑设备和文件 a) 逻辑设备 在Fortran中对文件和外部设备的操作都是通过逻辑设备进行的。在对文件和外部设备进行操作之前,都要把它们连接到逻辑设备上。内部文件的设备描述符和外部文件的设备描述符是不同的:内部文件用一个字符变量或其它变量名来描述,外部文件用OPEN语句打开文件时的数字(单元号)作为文件的描述,或是用默认的设备单元号包括星号(*)作为文件的描述。对于一个设备描述符,不
本文向大家介绍IOS获取缓存文件的大小并清除缓存文件的方法,包括了IOS获取缓存文件的大小并清除缓存文件的方法的使用技巧和注意事项,需要的朋友参考一下 移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage。 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯、购物、阅读类app的标配功能。 今天介绍的离线缓存功能的实现
问题内容: 我有一个zip存档,其中包含一堆纯文本文件。我想解析每个文本文件的数据。到目前为止,这是我写的内容: 我需要一个RandomAccessFile来做到这一点吗?我在拥有ZipInputStream的地方迷路了。 问题答案: 不,您不需要。首先获取此zip文件条目的数据: 然后将其包装为(从二进制解码为文本)和a (一次读取一行): 然后像往常一样从中读取行。像往常一样将所有适当的位包装
问题内容: 我正在寻找一种方法来获取jar文件中所有类的方法存根的列表。我不确定从哪里开始…我可以使用Reflection或Javassist或其他我还没有听说过的工具吗?至少有可能打开jar包,反编译类文件并使用行解析器扫描方法,但是我认为这是最肮脏的方法;-) 有任何想法吗? 亲切的问候 问题答案: 根据aioobe的回答,您还可以使用ASM的树API(而不是其访问者API)来解析JAR文件中
主要内容:1.SnakeYml,2.jackson-dataformat-yaml,3.Value,4.ConfigurationProperties1.SnakeYml 在使用SnakeYml解析yml时,最常使用的就是load、loadlAll、loadAs方法,这三个方法可以加载yml文件或字符串,最后返回解析后的对象。我们先从基础的load方法开始演示: 接下来看一下loadAll方法,它可以用来加载yml中使用—连接符连接的多个文档,将上面的yml文件进行修改: 在添加了连接符后,尝试
主要内容:1.Environment,2.YamlPropertiesFactoryBean,3.监听事件1.Environment 在Spring中有一个类Environment,它可以被认为是当前应用程序正在运行的环境,它继承了PropertyResolver接口,因此可以作为一个属性解析器使用。先创建一个yml文件,属性如下: 使用起来也非常简单,直接使用@Autowired就可以注入到要使用的类中,然后调用它的getProperty()方法就可以根据属性名称取出对应的值了 在上面的例子中