使用numpy.loadtxt加载同时包含float和string的文本文件

使用numpy.loadtxt加载同时包含float和string的文本文件,第1张

使用numpy.loadtxt加载同时包含float和string的文本文件

如果使用np.genfromtxt,则可以指定

dtype=None
,这将
genfromtxt
智能地猜测每列的dtype。最方便的是,它使您不必为字符串列指定所需的字节数。(通过指定例如来省略字节数是
np.str
行不通的。)

In [58]: np.genfromtxt('data.txt', delimiter=',', dtype=None, names=('sepal length', 'sepal width', 'petal length', 'petal width', 'label'))Out[58]: array([(5.1, 3.5, 1.4, 0.2, 'Iris-setosa'),       (4.9, 3.0, 1.4, 0.2, 'Iris-setosa'),       (5.8, 2.7, 4.1, 1.0, 'Iris-versicolor'),       (6.2, 2.2, 4.5, 1.5, 'Iris-versicolor'),       (6.4, 3.1, 5.5, 1.8, 'Iris-virginica'),       (6.0, 3.0, 4.8, 1.8, 'Iris-virginica')],       dtype=[('sepal_length', '<f8'), ('sepal_width', '<f8'), ('petal_length', '<f8'), ('petal_width', '<f8'), ('label', 'S15')])

如果您确实想使用

np.loadtxt
,然后以最小的更改来修复代码,则可以使用:

np.loadtxt("data.txt",   dtype={'names': ('sepal length', 'sepal width', 'petal length', 'petal width', 'label'),          'formats': (np.float, np.float, np.float, np.float, '|S15')},   delimiter=',', skiprows=0)

主要区别只是更改

np.str
|S15
(15字节的字符串)。

另外要注意的

open("data.txt"), 'r'
open("data.txt",'r')
。但是由于
np.loadtxt
可以接受文件名,因此您根本不需要使用文件名
open



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5644927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存