即使文件只有一维,如何使 np.loadtxt 返回多维数组?

rog*_*ger 6 python arrays numpy multidimensional-array

我需要获取 a 的最后四列数据ndarray,大多数情况下代码arr[:, -4:]都可以,但如果数组只有一维,这将抛出IndexError: too many indices

我的数据是 get with arr = np.loadtxt('test.txt'),所以如果test.txt有不止一行,比如

0 1 2 3 4
0 10 20 30 40
Run Code Online (Sandbox Code Playgroud)

一切都很好,但如果test.txt只有一行,比如

0 1 2 3 4
Run Code Online (Sandbox Code Playgroud)

这会返回array([ 0, 1, 2, 3, 4]),然后arr[:, -4:]会抛出异常,因为它应该是arr[-4:],那么如何让loadtxt返回array([[ 0, 1, 2, 3, 4]])呢?

mty*_*mty 7

刚在这里找到的。

您可以要求它至少有 2 个维度:

arr = np.loadtxt('test.txt', ndmin=2)
Run Code Online (Sandbox Code Playgroud)