我基本上尝试与这个人做同样的事情,但是使用Python: How can i delete last column from my text file
如何删除我的上一栏?
我首先尝试使用numpy.loadtxt
加载文本,然后忽略最终数组,但它根本不加载,因为最后一列包含字符串,而不是浮点数。
答案 0 :(得分:3)
numpy.loadtxt
函数有一个参数usecols
。来自the documentation:
numpy.loadtxt(
fname,
dtype=<type 'float'>,
comments='#',
delimiter=None,
converters=None,
skiprows=0,
usecols=None,
unpack=False,
ndmin=0
)
Load data from a text file.
...
usecols : sequence, optional Which columns to read, with 0 being
the first. For example, usecols = (1,4,5) will extract the
2nd, 5th and 6th columns. The default, None, results in all
columns being read.
当然,这假设您事先知道文件中有多少列。
例如,给定以下文件test.txt
:
100 test1
200 test2
300 test3
使用numpy.loadtxt("test.txt")
加载会产生此错误。
$ python -c "import numpy as np;np.loadtxt('test.txt')"
Traceback (most recent call last):
...
items = [conv(val) for (conv, val) in zip(converters, vals)]
ValueError: could not convert string to float: test1
但是使用usecols
参数可以正常工作:
$ python -c "import numpy as np;print np.loadtxt('test.txt', usecols=(0,))"
[ 100. 200. 300.]
答案 1 :(得分:2)
此代码块将文件读取为“字符串数组”
octave> java_get ("javax.xml.xpath.XPathConstants", "NODESET")
ans =
<Java object: javax.xml.namespace.QName>
octave> java_get ("javax.xml.xpath.XPathConstants", "NODESET").toString ()
ans = {http://www.w3.org/1999/XSL/Transform}NODESET
其中numpy.loadtxt('input_file.txt', dtype=str, usecols=(1,2,3,4))
用于指定需要将哪些列读入numpy数组。
<强>输出:强>
usecols