numpy loadtxt后的整形:无法将大小为x的数组整形为shape(x,y)

2024-10-02 20:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的文本文件,文件.txt3行4列:

0.0 0.0 0.0
0.0 0.0 10.0
15 10 2001 2995

我在用np.loadtxt文件把它作为数组读入。Loadtxt将它作为一个一维数组读入,我想把它转换回3x4数组,它的结构和文本文件一样。我试过了

^{pr2}$

但收到以下错误:

(3,)
['0.0 0.0 0.0' '0.0 0.0 10.0' '15 10 2001 2995']
ValueError: cannot reshape array of size 3 into shape (3,4)

我已经删去了形状和错误之间不相关的信息。如何将此文本文件改回3x4数组?它不必通过加载文本。我也试过用np.genfromtxt也无济于事。在


Tags: 文件of错误np数组结构array文本文件
2条回答

您不需要reshape数据,只需将loadtxt函数中的分隔符从,更改为空格' '

data = np.loadtxt(file, delimiter=' ', dtype = str)

这实际上将以3x4字符串数组的形式加载数据,缺少的元素将显示为空字符串''。然后可以使用

^{pr2}$

并使用以下方法转换为浮点数:

data = np.asarray(data, dtype = float)

熊猫很擅长阅读缺失条目的数据。如果没有熊猫,可以安装:

pip install pandas

在此之后,您可以使用pd.read_table来读取数据。缺少的值将替换为NaNs

^{pr2}$

相关问题 更多 >