首页 > 解决方案 > 读写numpy嵌套数组

问题描述

我正在尝试将嵌套数组(每行数组的数组)写入文本文件并成功读回,但我不确定我做对了,因为读回数组似乎永远不会起作用。

所以,我这样写整数数组:

    tmp_data = np.empty(shape=[len(tmp_list),3], dtype=np.object)
    for idx, item in enumerate(tmp_list):
        tmp_data[idx] = item[0][0], item[0][1], item[1]

结果数组的第一行如下所示:

[array([1,2,3]), array([1,2,3]), array([1])]

我可以这样写:

    np.savetxt(some_filename, tmp_data, fmt="%s)

..但是当我阅读它时使用:

np.genfromtxt(some_filename)

我得到类似的东西Line #89737 (got 36 columns instead of 25)。事实上,如果我查看写入的文本文件,看起来数组被分成几行,如下所示:

 [[ 3  4  3  0  4  4  5  5  5  3  4  4  3  5  6  4  3  5  4  4  0  4  5  4
    3  4  3  0  4  4  5  5  5  3  4  4  3  5  6  4  3  5  4  4  0  4  5  4
     4  4  3  5  6  4  3  5  4  4  0  4  5  4]] [[....]] [[1]]
 ....

这不是故意的。

总之,我想逐行写出一个数组矩阵数组,然后在 numpy.xml 中读回它。

标签: numpynumpy-ndarray

解决方案


除非您死心塌地使用文本格式,否则您可以这样使用numpy.ndarray.dump

tmp_data.dump(some_filename.npy)

然后使用np.load(some_filename.npy).


推荐阅读