【问题标题】:How to convert a .csv file into a numpy array of different type [duplicate]如何将.csv文件转换为不同类型的numpy数组[重复]
【发布时间】:2016-06-15 19:15:00
【问题描述】:

所以我有一个小问题。我有一个 .csv 矩阵,我想在一个 numpy 数组中进行转换,所以我发现了这个: np.genfromtxt('/Users/username/Documents/fichieretudebis.csv', delimiter= ';')

问题是我的 .csv 矩阵包含数字和字符串,我需要它们都出现在我的数组中(但我希望它们保持它们的类型) 我试图将矩阵转换为 str 矩阵(使用 dtype=str),但我无法将数字转换回浮点类型。 有人知道怎么做吗? 谢谢

更多解释:

我的 .csv 文件是这样的enter image description here

我需要使用这个文件来创建一棵树(使用 sklearn 和随机森林算法)

这是我目前写的 enter image description here

(名为ResultatBis和Previsionbis的文件有同样的问题)。

我不知道如何在不使用 numpylibrary 的情况下创建一个将被 sklearn 识别的数组,但我需要我的矩阵保持完全相同。

请告诉我这是否足够解释并感谢您对未来的帮助!

【问题讨论】:

  • numpy 用于同质、对齐的数据。如需更多奇特方案,请查看 pandas。

标签: python arrays csv numpy scikit-learn


【解决方案1】:

np.genfromtxt('/Users/username/Documents/fichieretudebis.csv', delimiter= ';',dtype=None)

(在https://stackoverflow.com/a/15481761/1461850之后)

【讨论】:

  • 谢谢!它会对我有所帮助,但你如何在所有字符串元素前获得 a b。 [(44, 75007, 0, 0, 0, b'gmail') (31, 75018, 13, 1, 0, b'gmail') (25, 75001, 11, 1, 1, b'gmail') ( 11, 75019, 4, 1, 0, b'gmail')] 这是我得到的输出类型
  • b 只是 Python3 指示它从文件中读取字节 (ASCII) 字符串的方式。 Py3 的默认字符串类型是unicode。看看dtype。对于这个字段,它可能是<S5 或类似的。在 Python2 下,您不会看到 b,但 dtype 将是相同的。
【解决方案2】:

您也可以尝试使用 Pandas:

import pandas as pd
prediction = pd.read_csv('/Users/username/Documents/fichieretudebis.csv', delimiter= ';')

Pandas 在读取和处理来自 .csv 数据集的数据方面非常受欢迎。在我的机器学习作业中,我一直使用它。

【讨论】:

    猜你喜欢
    • 2020-02-22
    • 1970-01-01
    • 2017-11-02
    • 2021-11-13
    • 1970-01-01
    • 2018-02-18
    • 2017-01-15
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多