从CSV导入时的numpy数组

卡梅尔

我有一个问题,我不知道如何处理。

我有这样的CSV文件:

0.3,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51
0.6,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51
0.9,36.22683698,-115.0466482,1836.255238,0,0,0.2105903662,0.6848089322,41.15086807,2016/3/26,4:35:51

如您所见,首先我有9个浮点值,然后有2个我想作为字符串加载的值。分隔符=,

当我使用时:

load = np.genfromtxt(str(path), delimiter=',')
print load[0,4]

它从第0行第4列打印值,并且可以工作。数据已正确加载。但是有一个问题,因为最后两个值是nan

print load[0,10]
>>nan

当我将代码更改为此时:

load = np.genfromtxt(str(path), delimiter=',',dtype=None)

我收到错误消息:

打印负载[0,4]
IndexError:数组索引过多

所以一切正常,除非我添加 dtype=None

我做错了什么?

弗朗切斯科·纳扎罗(Francesco Nazzaro)

您不能使用几个创建numpy数组dtype您必须使用导入dtype=str

import numpy as np
load = np.genfromtxt(str(path), delimiter=',',dtype=str)

使用dtype=None它创建一个带有shape的numpy数组(3,)所以你不能打电话load[0, 4]

每个条目都是包含您的数据的元组。因为元组可以包含几种类型。

也许出于您的目的,您必须使用熊猫:

import pandas as pd
load = pd.read_csv(str(path), header=None)

输出如下:

0          1           2            3   4   5        6         7   \

0 0.3 36.226837 -115.046648 1836.255238 0 0 0.21059 0.684809
1 0.6 36.226837 -115.046648 1836.255238 0 0 0.21059 0.684809
2 0.9 36.226837 -115.046648 1836.255238 0 0 0.21059 0.684809

     8          9        10  

0 41.150868 2016/3/26 4:35:51
1 41.150868 2016/3/26 4:35:51
2 41.150868 2016/3/26 4:35:51

每列都有正确dtype的熊猫推断

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章