gpt4 book ai didi

python - numpy.fromfile 中的参数计数无效

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:58 24 4
gpt4 key购买 nike

这个问题可能是微不足道的,但我真的不知道如何解决它。假设我使用 np.int64 类型生成一个大小为 (4,3) 的 numpy 数组,然后写入二进制文件。该数组如下所示:

[[ 1  2  3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]

现在,假设我的目标是只读取第二行,[ 4 5 6]。这应该可以使用默认的 seek()功能。为此,我写了以下内容:

import numpy as np
import os

# To write
X = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
X = np.asarray(X, dtype=np.int64)
print("%s\n\n" % X)
X.astype(np.int64).tofile('test.dat')

# To read
f = open('test.dat', "rb")
n = 4
dim = 3
r = 1
f.seek((r*dim*8), os.SEEK_SET)

data = np.fromfile(f, count=(2*dim*8), dtype=np.int64).reshape(-1, dim)
print("The Reading data is:\n %s\n" % data)

但是,尽管我只想要 [ 4 5 6],但我得到了整个数组:

The Reading data is:
[[ 4 5 6]
[ 7 8 9]
[10 11 12]]

np.fromfile中,参数count=(r*dim*8)好像没有作用!!这是一个错误吗?还是我在这里做错了什么!

谢谢

最佳答案

如果您只想要 [4 5 6](1 个元素有 3 个项目),您的计数应该是您的 dim(即 3)

data = np.fromfile(f, count=dim, dtype=np.int64).reshape(-1, dim)

关于python - numpy.fromfile 中的参数计数无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50312082/

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