如何使用python将同一行中的字符串和数组保存为csv?

如何使用python将同一行中的字符串和数组保存为csv?,python,Python,我有一个向量,它是np.array([[1,2,3]]) 我想将向量和向量的名称保存在同一行中 比如说 向量1 2 3 矢量2 4 5 6 矢量37889 那么,我曾经这样尝试过 import csv import numpy as np a=np.array([[1,2,3]]) b='Vector1' c=[b,a] with open ('testfile.csv','ab') as fxx: w=csv.writer(fxx) for row in c:

我有一个向量,它是
np.array([[1,2,3]])

我想将向量和向量的名称保存在同一行中

比如说

向量1 2 3

矢量2 4 5 6

矢量37889

那么,我曾经这样尝试过

import csv
import numpy as np
a=np.array([[1,2,3]])
b='Vector1'
c=[b,a]
with open ('testfile.csv','ab') as fxx:
        w=csv.writer(fxx)
        for row in c:
            w.writerow(row)
结果是

那么我也试过这个

import csv
import numpy as np
a=np.array([[1,2,3]])
b='Vector1'
c=np.append(b,a)
with open ('testfile3.csv','ab') as fxx:
        w=csv.writer(fxx)
        for row in c:
            w.writerow(row)
结果是

但我想要的结果是

输出:

 0  1  2        3
0  1  2  3  Vector1
writerow()
需要一个序列,其中每个元素将填充一列,即

`writer.writerow(["foo", 42, "bar")
将导致(引号和分隔符取决于writer参数):

在代码中创建一个列表
c
,如下所示:

c=['Vector1', [[1, 2, 3]]]
即第一个元素是字符串,第二个元素是一个元素的列表,这是另一个列表

然后迭代此列表,将其每个元素传递给编写器,因此基本上您要做的是:

writer.writerow("Vector1")
writer.writerow([[1, 2, 3]])
对于第一行,由于字符串是序列,因此每个字符将填充一列,结果是(根据您的writer配置,引用和删除):

对于第二种情况,由于您传递了一个元素的列表,它将用列表中单个元素的字符串表示形式填充一列:

"[1, 2, 3]"
如果你想要的是

"Vector1",1,2,3
然后,显而易见的解决方案是将正确的序列传递给
writerow

writer.writerow(["Vector1", 1, 2, 3])
现在您只需更改代码即可正确生成此序列

"V","e","c","t","o","r","1"
"[1, 2, 3]"
"Vector1",1,2,3
writer.writerow(["Vector1", 1, 2, 3])