当numpy.loadtxt(fname, ..)
是空文件时,有没有办法让(0, ncol)
创建一个形状ncol
数组,其中fname
是我指定的整数?< / p>
例如,如果我运行以下脚本,
#!/usr/bin/python3
import numpy as np
aa = np.loadtxt('fanmab.dat', ndmin=2)
print('aa.shape=', aa.shape)
ae = np.loadtxt('fempty.dat', ndmin=2)
#ae = np.loadtxt('fempty.dat', ndmin=2, usecols=(0,1,2,3))
print('ae.shape=', ae.shape)
包含文件fanmab.dat
# This is fanmab.dat
0.1234 0.56 0.78 0.90
1.1234 1.56 1.78 1.90
2.1234 2.56 2.78 2.90
和fempty.dat
# This is an empty file
我在python中看到以下stdout
$ ./main.py
aa.shape= (3, 4)
/usr/lib/python3/dist-packages/numpy/lib/npyio.py:816: UserWarning: loadtxt: Empty input file: "fempty.dat"
warnings.warn('loadtxt: Empty input file: "%s"' % fname)
ae.shape= (0, 1)
当没有可读入的行而1
时,第二维的长度似乎会自动设置为ndmin=2
。设置usecols
似乎没有帮助。
我是否需要执行以下操作?
if ae.shape[0]==0:
ae.reshape((0,ncol))
答案 0 :(得分:1)
声明
ae = np.loadtxt(..., ndmin=2).reshape(-1, 4)
适用于这两种情况。 -1
告诉NumPy根据扁平输入数组的大小猜测行数。