很难知道在本案中是什么导致了问题,因为你没有给我们足够的信息。鉴于你在这里张贴的信息,你的代码应该起作用:
>>> with open( beamtest.out , r ) as f:
... f.readlines()
...
[ header 0
, header 1
, header 2
, header 3
, header 4
,
header 5
, header 6
, header 7
, header 8
, header 9
,
header 10
, header 11
, header 12
, header 13
,
3 0 36373.7641026
, 3 1 36373.7641026
, 3 2 36373.7641026 ]
>>> chunk, power = numpy.loadtxt( beamtest.out , skiprows=14,
usecols=(1,2), unpack=True)
>>> chunk
array([ 0., 1., 2.])
>>> power
array([ 36373.7641026, 36373.7641026, 36373.7641026])
当然,正如>kindall s 答复所示,第二个例子将失败,因为usecols
不接受单整数;它 rel=“nofollown noreferrer”>> >requires a 序列 。 ( (1)
只是括号中的 1
;要创建一个tuple,你需要在那里有一个逗号 -- (1) 。
下面是如何使用 dtype
来指定多列格式的示例 :
>>> record = numpy.loadtxt( beamtest.out , skiprows=14, usecols=(1, 2),
dtype={ names :( chunk , power ),
formats :( i8 , f8 )})
>>> record
array([(0, 36373.7641026), (1, 36373.7641026), (2, 36373.7641026)],
dtype=[( chunk , <i8 ), ( power , <f8 )])
>>> record[ chunk ]
array([0, 1, 2])
>>> record[ power ]
array([ 36373.7641026, 36373.7641026, 36373.7641026])