python-3.x - 如果我们已经有 numpy.load,为什么还需要 numpy.fromfile?
问题描述
numpy.fromfile
根据SciPy文档
从文本或二进制文件中的数据构造一个数组。[...] 使用该方法写入的数据
tofile
可以使用此功能读取。
所以我只是按照说明使用并创建一个文件tofile
import numpy as np
A = np.random.rand(1000)
A.tofile('binary_file') # saving a dummy binary_file
x1 = np.fromfile('binary_file') # loading the dummy file
print(np.array_equal(A, x1)) # checking if the arrays are the same
>>> True
numpy.load
同时,我们也有np.save
andnp.load
tofile
fromfile
np.save('file.npy',A)
x2 = np.load('file.npy')
print(np.array_equal(A, x1))
>>> True
fromfile
== np.load
?
两种加载方法产生相同的结果,如下所示
print(np.array_equal(x1, x2))
>>> True
那为什么需要这两个功能呢?有什么可以做np.load
但不能做的fromfile
吗?或相反亦然?
解决方案
fromfile == np.load?
No. numpy.load
读取NPY 格式的文件。这是包含定义 numpy 数组的形状和数据类型的元数据的特定格式。
numpy.fromfile
从文件中读取原始字节。文件中没有存储元数据。您的示例A
碰巧有效,因为默认数据类型fromfile
是float64
. 这是一个不起作用的示例:
In [25]: A = np.array([10, 20, 30, 40])
In [26]: A.tofile('binary_file')
In [27]: B = np.fromfile('binary_file')
In [28]: B
Out[28]: array([4.9e-323, 9.9e-323, 1.5e-322, 2.0e-322])
推荐阅读
- ios - 使用 SwiftUI 实现应用内购买
- python - 为什么 AWS Lambda 会因凭证错误而超时?
- regex - 正则表达式匹配带或不带扩展名的文件名
- sql - 如何将数组设置为 SQL 查询的参数
- python - 为每个页面启动一个新线程?
- wordpress - SVN Wordpress 在提供正确的凭据时不断要求身份验证
- c++ - 用于实时流式传输的基本快速同步参数
- node.js - 无法使用 sendMessage 函数读取未定义的属性“长度”
- javascript - 为什么不能从 service worker 发送二进制数据?
- javascript - Discord.js 锁定命令