【问题标题】:Dictionary of numpy arrays to (transposed) csvnumpy 数组字典到(转置)csv
【发布时间】:2020-10-10 17:46:26
【问题描述】:

我有一本 numpy 浮点数组的字典:

labels = 'L0', 'L1', 'L2'
x = {'a': array([1.0, 1.1, 1.2]), 'b':array([2.0, 2.1, 2.2])}

我想要一个类似 .csv 的文件

'Label','a', 'b'
'L1',1.0, 2.0
'L2',1.1, 2.1
'L3',1.2, 2.2

Python 新手...我有点迷茫...谢谢。求您的帮助!

【问题讨论】:

    标签: python numpy csv


    【解决方案1】:

    Pandas 正是如此。你会喜欢的

    import pandas as pd
    
    dataframe = pd.DataFrame(x, index=labels)
    dataframe.to_csv('filename.csv')
    

    【讨论】:

    • 谢谢,@Marat,完美。小补充:dataframe.index.name = 'Label'
    【解决方案2】:

    您可以为此使用 python csv-module。您需要指定 quotechar="'"quoting=csv.QUOTE_NONNUMERIC 以确保引用您想要的:

    import numpy as np
    
    labels = 'L0', 'L1', 'L2'
    x = {'a': np.array([1.0, 1.1, 1.2]), 'b':np.array([2.0, 2.1, 2.2])}
    
    import csv
    
    with open("d.txt","w", newline="") as f:
        # ensure quoting of non numerics
        wr = csv.writer(f, quotechar="'", quoting=csv.QUOTE_NONNUMERIC)
        header = ["Label"] + [k for k in x.keys()]
        wr.writerow(header)
        data = zip(labels,*x.values())
        for d in data:
            wr.writerow(d)
    
    print(open("d.txt").read())
    

    文件输出:

    'Label','a','b'
    'L0',1.0,2.0
    'L1',1.1,2.1
    'L2',1.2,2.2
    

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 2018-12-25
      • 2013-05-05
      • 2018-05-28
      • 2019-05-29
      • 2020-09-16
      • 2018-03-23
      • 2016-12-09
      • 2021-04-21
      相关资源
      最近更新 更多