2015-07-28 74 views
-1

我有一個4維的變量,我想設置其中3個等於固定值,所以只有一個正在改變(即我可以得到一個二維圖形表示的變量) - 但我可以沒有辦法用scipy和numpy來做到這一點。我不願意安裝NetCDF4(我只有工作經驗 - 上週我學習了python,所以我對此很陌生)。設置一個NetCDF尺寸值

謝謝!

回答

0

NetCDF4可讓您指定一個維度作爲變量,以便以一種方便的方式組織數據文件佈局。您只能將數據添加到文件的末尾。任何其他更改都需要重寫該文件,或者至少需要大塊文件。此外,很多NetCDF4數據具有自然的「增長」維度,例如空間固定樣本點,但隨着時間的推移而增長。

numpy數組沒有這樣的選項,通常不需要它。如果您需要將數據添加到數組,則使用concatenate來創建一個新數組,其中包含舊數據和新數據。或者說,它加入了所有元素,而沒有「舊」與「新」的區別。 np.concatenate被編譯,因此合理快速。我相信它的作用是創建合適大小的新空數組,並複製輸入數據。

有一個np.append,但它確實只是concatenate的前端。對於一次添加到數組中是沒問題的,但是新用戶通常會將其放入循環中,並將其逐個添加到數組中,以此來濫用它。

一個常見的numpy構造數組的方式是將這些片段追加到列表中,並在末尾處將該列表傳遞給np.array。 Python list有一個有效的附加方法。這樣的清單也可以傳遞給np.concatenate

另一種常見的方法是初始化一個足夠大的空數組,然後沿着適當的維度插入子數組。

增量式創建數組是一個常見的SO numpy問題。