【问题标题】:How to convert array of numpy arrays to csv如何将numpy数组的数组转换为csv
【发布时间】:2020-10-17 10:01:19
【问题描述】:

如何将 NumPy 数组的数组转换为 CSV 文件。 我已经提到了下面的代码:

array_of_nparray = [[[1,2,3,4]],[[5,6,7,8]],[[9,10,11,12]]]
header = ["a","b","c","d"]

转成 csv 格式:

a | b | c | d|
1 | 2 | 3 | 4|
5 | 6 | 7 | 8|
9 | 10 | 11 | 12|

我试着这样做

with open("abc.csv","w") as f:
   m = csv.writer(f)
   m.writer(header)
   m.writerow(array_of_nparray)

But was unsuccessful because it printed all the NumPy arrays in the first column
Can anyone please help
 

【问题讨论】:

  • 这不是 numpy 数组的数组:array_of_nparray = [[[1,2,3,4]],[[5,6,7,8]],[[9,10,11,12]]] 这是一个 3D 嵌套列表。

标签: python python-3.x list csv export-to-csv


【解决方案1】:

你可以使用pandas:

import pandas as pd

array_of_nparray = [[[1,2,3,4]],[[5,6,7,8]],[[9,10,11,12]]]
header = ["a","b","c","d"]
df = pd.DataFrame(np.array(array_of_nparray).reshape((3,4)), columns=header)

df.to_csv("file_name.csv", index=False)

【讨论】:

    【解决方案2】:

    通过将数组转换为 pandas Dataframe,然后将其保存为 CSV 格式。

    import pandas as pd
    
    array_of_nparray = [[[1,2,3,4]],[[5,6,7,8]],[[9,10,11,12]]]
    header = ["a","b","c","d"]
    
    df = pd.DataFrame(np.array(array_of_nparray).reshape((3,4)), columns=header)
    
    df.to_csv("data.csv", index=False)
    

    【讨论】:

      【解决方案3】:

      numpy.savetext为例,我得到了以下解决方案:

      import numpy as np
      array_of_nparray = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
      header = ' a, b, c, d'
      np.savetxt('2darray.csv', array_of_nparray, delimiter=',', header=header ,fmt='%d', comments='')
      

      【讨论】:

        【解决方案4】:

        您也可以使用简单的字符串格式:

        array_of_nparray = [[[1,2,3,4]],[[5,6,7,8]],[[9,10,11,12]]]
        header = ["a","b","c","d"]
        
        with open("abc.csv","w") as f:
           f.write('#'+','.join(header)+'\n')
           for line in array_of_nparray:
               f.write(','.join([str(i) for i in line[0]])+'\n')
        

        但必须适应不同的情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-05
          • 2021-12-18
          • 1970-01-01
          • 1970-01-01
          • 2021-06-09
          • 1970-01-01
          • 2021-02-02
          • 1970-01-01
          相关资源
          最近更新 更多