繁体   English   中英

numpy追加数组

[英]Numpy appending arrays

我正在尝试在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的大小应为:3MB X 4 = 12MB。 但是我发现该大小的大小是24MB。

这是怎么回事 我希望sino只有12MB​​,仅包含来自四个data变量的data 我该怎么办? 谢谢。

你的sino是不是numpy的阵列最初但Python列表。

默认情况下,在64位安装中,Numpy会在默认情况下首次将其转换为64位数组,之后它将保持这种状态,是您预期的两倍。

附加数据的所有时间都会被转换为64位,因为这是目标的格式。

从一开始np.float32 sino设为np.float32数组即可解决该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM