
如果使用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。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)