What genfromtxt
返回被称为结构化数组。它给出了一个一维元组数组,每个元组都有dtype
您指定的。
一旦您学会如何使用它们,它们实际上非常有用。你不能拥有带有浮点和字符串的二维数组,但是使用结构化数组,你可以!
例如:
import numpy as np
from StringIO import StringIO
s = """string001 123
string002 456
string002 789"""
f = StringIO(s)
y = np.genfromtxt(f, dtype=[('mystring', 'S20'), ('myfloat', float)])
这就是你到目前为止所拥有的。现在您可以访问y
以下列方式。您可以使用字段名称获取一维数组形式的列:
>>> y['mystring']
array(['string001', 'string002', 'string002'],
dtype='|S20')
>>> y['myfloat']
array([ 123., 456., 789.])
注意y['myfloat']
gives float
是因为dtype
论点,即使在文件中它们是int
s.
或者,您可以使用整数来获取一行作为tuple
与给定的dtype
:
>>> y[1]
('string002', 456.0)
如果您正在对这样的数据结构进行大量操作,您可能需要研究一下pandas http://pandas.pydata.org/