我正在尝试从文件保存和恢复
arr.tofile("saved_arr.npy", sep=" ") #shape is (4, 5000, 5000)
arr = np.fromfile("saved_arr.npy") #shape is (278564007, )
如何正确恢复 (4, 5000, 5000)
形状的 ndarray?
谢谢
最佳答案
我假设您没有使用 numpy.save
和 numpy.load
因为您需要将输出写入文本文件。这些方法按原样恢复 NumPy 数组的维度。如果您使用tofile
和 fromfile
,它们以 C 顺序写入输出,这意味着它默认将数据一次一行地分解为一维数组。您需要调用 numpy.reshape
数组上的方法将其恢复到所需的尺寸。另外,请确保指定正确的分隔符。您在 fromfile
调用中省略了这一点,这意味着该文件应被视为二进制文件。
如果您必须使用这些方法,请尝试:
arr.tofile("saved_arr.npy", sep=" ")
arr = np.fromfile("saved_arr.npy", sep=" ").reshape((4, 5000, 5000))
关于python - Numpy 无法正确恢复维度(tofile 和 fromfile 调用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364593/