【问题标题】:Exporting each row of a 2D numpy array as a single element in csv column将 2D numpy 数组的每一行导出为 csv 列中的单个元素
【发布时间】:2017-10-18 10:54:21
【问题描述】:

我有一个 2D numpy 数组,其形状为 (15015,262)。我需要将它导出到 csv 文件,以便 numpy 2Darray 的 每一行 是 csv 文件的 单个元素列表(即 csv 文件应该有一个形状(15015,1)。

我尝试使用 python 的 csv 模块和 numpy 模块,但似乎没有任何工作正常。例如,我尝试使用

with open('filename.csv', 'wb') as f: writer = csv.writer(f) for val in modified_seq_data: writer.writerow([val])

在上述情况下(即使 csv 文件确实保存在单个列中),当我通过 np.genfromtxt 调用它时(对于不同的代码),我得到以下输出:

[nan nan nan nan nan ..... nan nan nan]

不知何故,它无法将 csv 导出到每个元素都是一个列表的 numpy 一维数组中。 任何帮助将不胜感激!

【问题讨论】:

    标签: python arrays csv numpy


    【解决方案1】:

    假设modified_seq_data是numpy数组:

    with open('filename.csv', 'wb') as f:
        writer = csv.writer(f)
        for i in range(modified_seq_data.shape[0]):
            writer.writerow([modified_seq_data[i, :]])
    

    【讨论】:

    • 这给了我同样的问题 - 当我再次调用 csv 文件时(在另一个程序中)它给了我 [nan nan nan... nan nan nan] @Skyy2010
    • @Rohini Banerjee,我认为这就是你想要的。每个 1d numpy 数组作为一个列表。那你想要什么?也许你可以用预期的输出写一个 csv 文件的示例行
    【解决方案2】:

    您的单个​​输出列表对象中是否包含逗号?如果是这样,您的读者可能只是通过列表阅读这些逗号。就结构而言,我认为这是这里的根本问题,每行需要 1 个原子值才能获得 csv 的效果。因此,我会考虑将您的列表对象转换为一个由空格分隔的大字符串,将其写出,然后将其读入,将其拆分,然后将类型转换回所需的类型。

    希望这会有所帮助。 公元前

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 2021-05-29
      • 2017-05-21
      相关资源
      最近更新 更多