gpt4 book ai didi

python - Numpy fromfile 的两种实现?

转载 作者:行者123 更新时间:2023-11-30 22:40:13 25 4
gpt4 key购买 nike

我正在尝试更新一些在方法中使用 np.fromfile 的旧代码。当我尝试在 numpy 源中搜索此方法时,我只找到 np.core.records.fromfile ,但是当您搜索文档时,您可以找到 np.fromfile 。看看这两种方法,你可以发现它们有不同的 kwargs,这让我觉得它们是完全不同的方法。

我的问题是:

1) np.fromfile 的源代码位于哪里?

2) 为什么同一个名字下有两个不同的函数?如果您不注意差异,这显然会让人感到困惑,因为两者的行为不同。具体来说,如果您尝试读取的字节数多于文件包含的字节数,而 np.fromfile 不读取,则 np.core.records.fromfile 将会引发错误。您可以在下面找到一个最小的示例。

In [1]: import numpy as np

In [2]: my_bytes = b'\x04\x00\x00\x00\xac\x92\x01\x00\xb2\x91\x01'

In [3]: with open('test_file.itf', 'wb') as f:
f.write(my_bytes)

In [4]: with open('test_file.itf', 'rb') as f:
result = np.fromfile(f, 'int32', 5)

In [5]: result
Out [5]:

In [6]: with open('test_file.itf', 'rb') as f:
result = np.core.records.fromfile(f, 'int32', 5)
ValueError: Not enough bytes left in file for specified shape and type

最佳答案

如果您在 np.fromfile 上使用help,您会发现一些非常...有用的内容:

Help on built-in function fromfile in module numpy.core.multiarray:

fromfile(...)
fromfile(file, dtype=float, count=-1, sep='')

Construct an array from data in a text or binary file.

A highly efficient way of reading binary data with a known data-type,
as well as parsing simply formatted text files. Data written using the
`tofile` method can be read using this function.

据我所知,这是用 C 实现的,可以找到 here .

如果您尝试保存和加载二进制数据,则不应再使用np.fromfile。您应该使用 np.savenp.load,它们将使用独立于平台的二进制格式。

关于python - Numpy fromfile 的两种实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42911128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com