我试图在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
变量的数据。我该怎么做?谢谢。你知道吗
您的
sino
最初不是numpy数组,而是Python列表。你知道吗默认情况下,在64位安装中,Numpy第一次将其转换为64位数组,然后保持这种方式,是预期的两倍。你知道吗
每次追加数据时,都会将其转换为64位,因为这是目标的格式。你知道吗
从一开始就创建
sino
一个np.float32
数组来解决问题。你知道吗相关问题 更多 >
编程相关推荐