应用于巨大数组的 numpy array2string,跳过中心值,( ... 在中间)

numpy array2string applied on huge array, skips central values, ( ... in the middle )

我有大小为 (3, 3, 19, 19) 的数组,我应用 flatten 得到大小为 3249 的数组。

我必须将这些值与其他一些数据一起写入文件,所以我按照以下步骤获取字符串中的数组。

np.array2string(arr.flatten(), separator=', ', suppress_small=False)

但是当我在写入后检查文件的内容时, 我注意到我在数组中间有 ,... , 如下

[ 0.09720755, -0.1221265 , 0.08671697, ..., 0.01460444, 0.02018792, 0.11455765]

如何获取包含所有元素的数组字符串,这样我就可以将所有数据保存到一个文件中?

据我了解array2string,它只是为了返回数组的"nice"字符串表示。

numpy.ndarray.tofile 可能是更好的选择 - https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.tofile.html。它应该将数组的全部内容写入给定文件。

with open("test.bin", "wb") as f:
    arr.flatten().tofile(f)

你当然可以用 numpy.fromfile - https://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html.

读回
with open("test.bin", "rb") as f:
    arr = numpy.fromfile(f)