numpy.genfromtxt显示以下代码。我无法理解以下代码,特别是dtype和读取字符串部分,因此也无法理解代码。以下是代码。
from io import StringIO
import numpy as np
s=StringIO(u"1,1.3,abced")
data=np.genfromtxt(s, dtype=[('myint', 'i8'),('myfloat','f8'), ('mystring','S5')], delimiter=",")
好的。在这里,我得到从s=StringIO(u"1,1.3,abced")
中读取的1,1.3和abced。但是u
的作用是什么?
此外,我得到i8是8字节的整数。但是'myint
','myfloat
'和'mystring
'是做什么的呢?
答案 0 :(得分:0)
'u'表示'unicode',这是Py3中的默认字符串类型,因此此处不需要。同样也不需要StringIO
。我只给genfromtxt
一个字符串列表:
In [221]: txt = ["1,1.3,abced"]
In [223]: np.genfromtxt(txt,
dtype=[('myint', 'i8'),('myfloat','f8'), ('mystring','S5')],
delimiter=",")
Out[223]:
array((1, 1.3, b'abced'),
dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])
dtype
定义了一个复合dtype,一个具有3个字段,每列一个。您可以按名称访问字段:
data['myint']
data['myfloat']