numpy loadtxt单行/行作为列表

Thi*_*iru 7 python arrays numpy

我有一个只有一行的数据文件,如:

 1.2  2.1  3.2
Run Code Online (Sandbox Code Playgroud)

我使用numpy版本1.3.0 loadtxt加载它

 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True)
Run Code Online (Sandbox Code Playgroud)

输出是浮点而不是数组

 a = 1.2
Run Code Online (Sandbox Code Playgroud)

我希望它会是:

 a = array([1.2])
Run Code Online (Sandbox Code Playgroud)

如果我读了一个包含多行的文件,它就可以了.

小智 5

只需使用 numpy 的 inbuit loadtxt 参数 ndmin 即可。

a,b,c=np.loadtxt('data.dat',ndmin=2,unpack=True)
Run Code Online (Sandbox Code Playgroud)

输出

a=[1.2]
Run Code Online (Sandbox Code Playgroud)


Thi*_*iru 0

不使用 reshape 的简单方法是显式对列表进行类型转换

 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True)
 a,b,c = (a,b,c) if usi.shape else ([a], [b], [c])
Run Code Online (Sandbox Code Playgroud)

这比重塑更快!