将npz文件转化为txt文件中出现错误(ValueError: Expected 1D or 2D array, got 3D array instead)的解决办法

seq.npz直接使用Notepad++打开发生错误,试着使用python去读这个文件包。

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np

# %%
seq_data = np.load('seq.npz')
print(seq_data.files)
# %%
dist = seq_data['dist']
omega = seq_data['omega']
theta = seq_data['theta']
phi = seq_data['phi']

np.savetxt('seq_data.txt',dist,fmt='%s',newline='\n')

发生以下错误
在这里插入图片描述
百度了一下解决方法,发现传入的数据需要进行类型转换,所有的数据都应该是二维矩阵,哪怕是单独一行或者单独一列。使用reshape(1, -1),将数据转换成一行,使用reshape(-1, 1),将数据转换成一列。再次执行,发现可以生成txt文件,错误解决。
参考:https://blog.csdn.net/qq_41185868/article/details/86651238