【问题标题】:genfromtxt: numpy.darray, IndexError: too many indicesgenfromtxt:numpy.darray,IndexError:索引太多
【发布时间】:2015-04-02 14:15:45
【问题描述】:

我有一个 csv 文件,我尝试打开

def datetime_from_str(string):
    return dt.datetime.strptime(string, '%Y-%m-%d %H:%M:%S')

def main():

    data = genfromtxt(
        csv_name, delimiter=';', skip_header=1, dtype=None,
        names=col_names, converters={'fecha':datetime_from_str}
    )

但是,当我尝试调用一列时

 print type(data), data[:,1]

我收到此错误

<type 'numpy.ndarray'>
Traceback (most recent call last):
...
IndexError: too many indices

【问题讨论】:

  • 听起来你的data 数组是一维的,所以当你尝试访问data[:,1] 时会抛出错误。分隔符是否正确?如果你打印出data,看起来对吗?
  • 是的,数据看起来正确[ ('some value', datetime.datetime(2014, 4, 22, 15, 5, 3), 1061.932, ...
  • data 是一维结构化数组 - 带有“字段”

标签: python numpy genfromtxt


【解决方案1】:

看起来您的 data 是一维结构化数组。它的dtype 列出了字段,名称取自您的col_names。告诉我们data.dtype

假设第二个名字是fetcha ('date'),那么你应该可以访问这些日期

data['fetcha']  # or
data[col_names[1]] 

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 2019-09-04
    • 2017-10-05
    • 2013-01-25
    • 2013-12-08
    • 1970-01-01
    • 2020-09-26
    • 2019-07-17
    相关资源
    最近更新 更多