首页 > 解决方案 > 将 numpy 数组 + 字符串导出为 CSV

问题描述

我有两个 numpy 数组,每个形状为 (x,1)。我想将数据导出到 CSV 文件,所以它看起来像这样

Channel- Freq(np Array 1) - FFT(np Array 2) - Class (一个字符串标签)

Channel 和 class 列将有 1 个固定值,freq 和 FFT 来自数组。

我尝试过使用 np.column_stack ,但它只允许结合 freq 和 fft,没有别的。我曾尝试查看 pandas DataFrame(从 CSV 导入后的原始数据)我目前找不到任何有用的东西。

def combine_data(freq, matrix):
    combine_dt = np.column_stack((freq, matrix))
    return combine_dt

def export_data_csv(freq, matrix):
    combined_data = np.column_stack((freq, matrix))
    np.savetxt("freq_amp.csv", combined_data, delimiter=",")

这仅适用于制作只有两列的 CSV

标签: pythonpandasnumpy

解决方案


我认为使用熊猫更容易。

比方说:

array1=[0,1,2,3,4]
array2=[10,11,12,13,14]

首先使用 2 个数组创建一个数据框,然后设置常量值:

my_df = pd.DataFrame(data={"freq":array1,"FFT":array2})
my_df["channel"]="channel_name"
my_df["class"]="class_name"

#Output
    freq    FFT     channel     class
0     0     10   channel_name   class_name
1     1     11   channel_name   class_name
2     2     12   channel_name   class_name
3     3     13   channel_name   class_name
4     4     14   channel_name   class_name

然后您可以轻松地将其导出到 csv:

my_df.to_csv("filename.csv")

如果您不想要/不需要刚刚设置的索引:

my_df.to_csv("filename.csv",index=False)

对于其他选项,只需查看文档pandas.to_csv()


推荐阅读