【问题标题】:Use np.genfromtxt to read data of different dtypes in csv file使用np.genfromtxt读取csv文件中不同dtypes的数据
【发布时间】:2023-02-21 00:07:23
【问题描述】:

我正在尝试读取如下所示的 csv 文件:

label,value
first,1.234e-01
second,5.678e-02
three,9.876e-03
...

ETC

第一列包含字符串,第二列包含浮点数。

从 np.genfromtxt 的在线文档中,我认为该行

file_data = np.genfromtxt(filepath, dtype=[('label','<U'),('value','<f4')], delimiter=',', skip_header=1)

将指定每一列的数据类型,这将允许它被适当地读取但是当我尝试打印 file_data 时,我得到的东西看起来像

[('', 1.234e-01) ('', 5.678e-02) ('', 9.876e-03) ...]

当我期待

[('first', 1.234e-01) ('second', 5.678e-02) ('third', 9.876e-03) ...]

【问题讨论】:

  • 请阐明您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python numpy csv genfromtxt


【解决方案1】:

您需要在dtype(如&lt;U10)中指定大约预期的 unicode 字符数:

from io import StringIO

data = '''label,value
first,1.234e-01
second,5.678e-02
three,9.876e-03'''

file_data = np.genfromtxt(StringIO(data), dtype=[('label','<U15'),('value','<f4')], delimiter=',', skip_header=1)
print(file_data)

[('first', 0.1234  ) ('second', 0.05678 ) ('three', 0.009876)]

【讨论】:

  • 太感谢了!
猜你喜欢
  • 2018-04-03
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
相关资源
最近更新 更多