1

scipy 页面上的 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=",")

好的。在这里,我得到 1,1.3 和 abced 正在从s=StringIO(u"1,1.3,abced"). 但是有什么作用u呢?

另外,我知道 i8 是 8 个字节的整数。但是' myint'、' myfloat'和' mystring'做什么呢?

4

1 回答 1

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']
于 2019-01-31T01:13:39.297 回答