1
如何有效編寫Python字典,其中的值是Numpy Nd-Arrays到Json文件? 我得到一個錯誤,說Numpy Nd-Array不是Json-Serializable。有什麼辦法可以解決這個問題嗎?使用Numpy Nd-Array值將Python字典寫入Json文件的有效方法
如何有效編寫Python字典,其中的值是Numpy Nd-Arrays到Json文件? 我得到一個錯誤,說Numpy Nd-Array不是Json-Serializable。有什麼辦法可以解決這個問題嗎?使用Numpy Nd-Array值將Python字典寫入Json文件的有效方法
JSON僅支持有限數量的數據類型。如果您想將其他類型的數據存儲爲JSON,那麼您需要將其轉換爲JSON接受的內容。 Numpy數組的明顯選擇是將它們存儲爲(可能是嵌套的)列表。幸運的是,Numpy數組有一個.tolist
方法可以高效地執行轉換。
import numpy as np
import json
a = np.array(range(25), dtype=np.uint8).reshape(5, 5)
print(a)
print(json.dumps(a.tolist()))
輸出
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]]
.tolist
將數組元素天然Python類型(整數或浮點數)轉換,如果它可以這樣做無損。如果您使用其他數據類型,我建議您在致電.tolist
之前將它們轉換爲可移植的東西。
您是否嘗試將Numpy數組轉換爲(可能嵌套的)列表? –
是的,可以將Numpy數組轉換爲列表,然後工作。我的問題更傾向於其他方向:是否有更快捷的方法來實現這一目的,而沒有將所有的轉換和複製到列表中? – AlexGuevara