我正在 python 上進行單體素模擬,以生成帶有附加噪聲的模擬信號。然后,我想將生成的 numpy 陣列(具有以下形狀 (100, 100))轉換為 nifti 檔案。
行代表在不同噪聲和張量旋轉條件下的一個模擬信號。當使用特定采樣方案(100 個不同方向)進行測量時,每一串列示在這些條件下該體素的相應信號強度。
[DWI 陣列]

我要將這個矩陣保存到一個 nifti 檔案中,格式如下(10、10、1、100)。
[想要的形狀]

我不知道如何將 numpy 陣列 (DWIs.shape = (100,100)) 正確分配到我想要的格式 (10, 10, 1, 100):
data[…, ] = ?
?
converted_array = np.array(data, dtype=np.float32)
nifti_file = nib.Nifti1Image(converted_array, affine=np.eye(4))
nib.save(nifti_file, os.path.join(path_to_save, 'snr{}'.format(snr), 'full/dwi_sims_snr{}.nii.gz'.format(snr)))
uj5u.com熱心網友回復:
在 NumPy 中,您不需要“分配”資料陣列。
假設您有一個 100x100 converted_array。那是
>>> converted_array.shape
(100,100)
>>> converted_array[0]
[146.4, 72.9, ..., 174.9]
那么你可以把reshape這個陣列作為
>>> nifti_array = converted_array.reshape((10,10,1,100))
>>> nifti_array[0][0][0]
[146.4, 72.9, ..., 174.9]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386042.html
