Skip to main content
 首页 » 编程设计

python之将 NumPy 数组列表写入 csv

2025年05月04日19grandyang

我有一个 getX(),它给出一个二维数组 (shape=(18,2)) 作为图像每一帧的输出。我想将这个不断更新的数组添加到 csv 中。我使用了以下代码。但它只给我一行(可能只有一帧)。

[array([178.,  76.]), array([184.,  92.]), array([164.,  90.]), array([154., 116.]), array([160., 126.]), array([204.,  94.]), array([208., 124.]), array([190., 132.]), array([164., 152.])] 

我试过这个:

with open("data.csv",mode ='w') as csvfile: 
        wr = csv.writer(csvfile, quoting = csv.QUOTE_ALL,dialect="excel") 
        get_val = oneObject.getX(currentFrameIndex) 
        for  humanPos in get_val: 
            wr.writerow(humanPos) 

请您参考如下方法:

您可以使用 itertools.chain.from_iterable 取消嵌套 data 并使用 wr.writerow。

>>> from itertools import chain 
>>>  
>>> with open("data.csv", mode='w') as csvfile: 
...:      wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL, dialect="excel") 
...:      wr.writerow(chain.from_iterable(data))                                                                                                                  

输出:

$ cat data.csv 
"178.0","76.0","184.0","92.0","164.0","90.0","154.0","116.0","160.0","126.0","204.0","94.0","208.0","124.0","190.0","132.0","164.0","152.0"