Numpy附加数组

2024-04-19 09:56:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在for循环中通过每次迭代来增加一个数组/矩阵。 下面是我的代码

import numpy as np


sino = []; 
for n in range(0, 4):
    fileName = 'D:\zDeflectionBP\data\headData_zdef\COSWeighted_trunk_' + str(n) + '.bin'
    f = open(fileName, "rb")
    data = np.fromfile(f, np.float32)
    sino = np.append(sino, data)
f.close()

fileName = 'D:\zDeflectionBP\data\headData_zdef\Head_FFS_COSWeighted.bin'
f = open(fileName, "wb")
f.write(bytes(sino))
f.close()

每次迭代data在这里加载四个

然而,最后我发现sino的大小(以字节数计)是它应该的两倍。你知道吗

例如: 每种大小的data:3MB 那么,由于我有四个data,sino的大小应该是:3mbx4=12MB。 但我发现它的大小是24MB。你知道吗

这里发生了什么?我希望sino只有12MB,它只包含来自四个data变量的数据。我该怎么做?谢谢。你知道吗


Tags: 代码forclosedatabinnp矩阵数组
1条回答
网友
1楼 · 发布于 2024-04-19 09:56:06

您的sino最初不是numpy数组,而是Python列表。你知道吗

默认情况下,在64位安装中,Numpy第一次将其转换为64位数组,然后保持这种方式,是预期的两倍。你知道吗

每次追加数据时,都会将其转换为64位,因为这是目标的格式。你知道吗

从一开始就创建sino一个np.float32数组来解决问题。你知道吗

相关问题 更多 >