如何使用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])