我需要导入一个txt文件,该文件被支持为X行,每行18列,但实际上是这样的(即使不能看到每13列开始一行只有5个元素):
2.0462020e+001 2.9598587e+001 2.8684617e+001 1.2745371e+001 2.3967345e+001 2.4593504e+001 1.2683864e+001 3.1394543e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000 0.0000000e+000
8.8575460e-001 1.0210176e+000 1.2740904e+000 1.3526302e+000 1.4878932e+000 1.8107791e+000 1.9067722e+000 2.8143434e+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000 0.0000000 E+000
调用feat = np.loadtxt(x)
返回一个奇怪的维度(3602014),例如,如果我分析第0行,它的开头是这样的:
1.0 20.46 29.58 28.68 12.74 23.96 24.59 12.683.12 2.0 20.46 29.58 ...
就像在结果的第一行,我得到了实际数据集0,3,6,9,12的所有非0值。。。
在第2n行,我将有相同的,但原来的行1,4,7,。。。同样,结构是相同的,从1.0+值开始=第1行的0+2.0+个值!=第四行
如前所述,我想得到一个维度(X,18)的数组,没有出现的1.0和2.0,其中X只是原始文件应该具有的行数(每18列一个新行)
文件可以在https://github.com/OpenSLAM-org/openslam_ufastslam/blob/master/code/victoria_park/landmark.txt中下载
文本文件只有4行数千列。我认为如果我们读入整个文件并去掉换行符,我们就可以创建一个值列表
然后我们可以把它做成一个numpy数组,然后重新处理它
用
genfromtxt
(或loadtxt
)我得到:这与我在文本编辑器中查看文件时看到的内容相匹配—3行多列
data.reshape(-1,18)
生成具有(10034, 18)
的数组。我们可以去掉最初的1.000
,但这会破坏重塑(不再是18的倍数)相关问题 更多 >
编程相关推荐