如何将numpy数组和文本列合并并导出为csv
我想把一个numpy数组和一个作为标识符的字符串列结合起来,然后导出到一个csv文件,这样我就可以在Excel中导入它。
举个例子:
a=np.random.rand(6,4)
b=[]
for i in range(6):
b.append('test')
所以现在我想把b添加到a的最后一列。
完成后,我想用np.savetxt(或者类似的函数)把这个数组写入一个文件。
非常感谢任何帮助。
1 个回答
7
import numpy as np
a = np.random.rand(6,4)
b = ['test']*6
c = np.column_stack([a,b])
np.savetxt('/tmp/out', c, delimiter=',', fmt='%s')
写点东西,比如
0.70503807191,0.19298150889,0.962915679186,0.655430709887,test
0.586655200042,0.379720344068,0.136924270418,0.547277504174,test
0.777238053817,0.642467338742,0.709351872598,0.932239808362,test
0.386983024375,0.753005132745,0.124107902275,0.472997270033,test
0.169711196953,0.735713880779,0.280588048467,0.726851876957,test
0.20578446385,0.379406838045,0.640154333103,0.579077700263,test
到 /tmp/out
。
接着回应保罗的建议,如果你有pandas这个库,你可以很简单地创建一个数据框(DataFrame),然后调用它的to_csv方法:
import numpy as np
import pandas as pd
a = np.random.rand(6,4)
b = np.asarray(['test']*6)
df = pd.DataFrame(a)
df['b'] = b
df.to_csv('/tmp/out')