[英]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.