将具有Numpy Nd数组值的python字典写入Json文件的有效方法

将具有Numpy Nd数组值的python字典写入Json文件的有效方法,python,numpy,dictionary,multidimensional-array,Python,Numpy,Dictionary,Multidimensional Array,如何高效地编写Python字典,其中的值是Json文件的Numpy Nd数组? 我得到一个错误,指出Numpy Nd数组不可Json序列化。有没有办法克服这个问题?JSON只支持有限数量的数据类型。如果希望将其他类型的数据存储为JSON,那么需要将其转换为JSON可以接受的内容。Numpy数组的明显选择是将它们存储为(可能是嵌套的)列表。幸运的是,Numpy数组有一个.tolist方法,可以有效地执行转换 import numpy as np import json a = np.array(

如何高效地编写Python字典,其中的值是Json文件的Numpy Nd数组?
我得到一个错误,指出Numpy Nd数组不可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类型(int或float),如果它可以无损地这样做的话。如果您使用其他数据类型,我建议您在调用
之前将它们转换为可移植的数据类型。tolist

是否尝试将Numpy数组转换为(可能是嵌套的)列表?是的,可以将Numpy数组转换为列表,然后就可以工作了。我的问题是另一个方向:有没有更快的方法来达到这个目的,而不需要所有的转换和复制到列表?