首页 > 解决方案 > numpy.savetxt 将数组保存在单个单元格中?

问题描述

我有一个 numpy 数组list_of_vars。我想将数组的每个元素保存在一个新的单元格中,在一个行中,在一个 .csv 文件中。这是 中的一些元素的示例list_of_vars在此处输入图像描述

理想情况下,每个元素(ADC_ALT_TCADC_AOA_TC等)都应位于 Excel 中的一个新单元格中,并在一行中水平间隔。但是,使用此代码会将它们全部放入一个以空格分隔的单元格中:

with open(fname, 'w') as f:     
    np.savetxt(f, list_of_vars, fmt = '%s', delimiter = ',', newline = ' ')

我该如何解决?

标签: pythonnumpycsv

解决方案


如果您的数组是一维字符串数组,则直接使用savetxt将每行放置一个字符串:

In [164]: arr = np.array(['one','two','three'])
In [165]: np.savetxt('test.txt', arr, delimiter=',', fmt='%s')
In [166]: cat test.txt
one
two
three

您的换行方法:

In [172]: np.savetxt('test.txt', [arr], delimiter=',', fmt='%s', newline=' ')
In [173]: cat test.txt
one,two,three In [174]: 

相反,如果数组是 2d,例如 (1,3),则所有字符串都在一行上:

In [169]: np.array([arr])
Out[169]: array([['one', 'two', 'three']], dtype='<U5')
In [170]: np.savetxt('test.txt', [arr], delimiter=',', fmt='%s')
In [171]: cat test.txt
one,two,three

推荐阅读