簡體   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