【发布时间】:2018-02-22 19:35:58
【问题描述】:
我正在尝试通过 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。
但是我发现size的大小是24MB。
这里发生了什么?我希望 sino 只有 12MB,它只包含来自四个 data 变量的数据。我该怎么做?谢谢。
【问题讨论】:
-
请坚持使用列表追加!几乎没有人正确使用
np.append。如果您必须使用np.concatenate。这样你就不得不密切关注你加入的数组的维度。 -
@hpaulj:对不起,我不太明白。我应该使用还是不使用'np.append()',还是应该使用'np.concatenate()'?
-
@hpaulj:你的意思是我应该使用 np.concatenate() 代替?