Python代码:使用高斯噪声扩充多组多维数据样本
使用高斯噪声扩充多组多维数据样本
本示例代码使用Python的NumPy和Pandas库,将多组多维已知数据导入Excel表格,并注入高斯噪声以扩充样本数量,最后将结果导出为新的Excel文件。
代码示例
import numpy as np
import pandas as pd
# 导入原始数据
data = np.loadtxt('data.txt')
# 扩充样本
num_samples = 10
stddev = 0.1
noisy_data = np.zeros((num_samples, data.shape[0], data.shape[1]))
for i in range(num_samples):
noisy_data[i] = data + np.random.normal(loc=0, scale=stddev, size=data.shape)
# 将多组数据合并为一个DataFrame
df_list = []
for i in range(num_samples):
df_list.append(pd.DataFrame(noisy_data[i], columns=['X', 'Y', 'Z']))
df = pd.concat(df_list, keys=['Sample {}'.format(i+1) for i in range(num_samples)])
# 导出为Excel文件
df.to_excel('noisy_data.xlsx')
代码说明
- 导入必要的库:NumPy和Pandas
- 导入原始数据:使用
np.loadtxt()函数从data.txt文件中读取数据。data.txt应该是一个包含多行和三列的文本文件,每列代表一个维度,每行代表一个样本。 - 扩充样本:
- 定义
num_samples参数来指定要生成的样本数量。 - 定义
stddev参数来指定噪声的标准差。 - 使用
np.random.normal()函数生成高斯噪声,并将其添加到原始数据中,从而生成noisy_data。
- 定义
- 合并数据:使用
pd.DataFrame()将每个noisy_data数组转换为DataFrame,并使用pd.concat()将所有DataFrame合并成一个DataFrame。 - 导出数据:使用
df.to_excel()函数将最终的DataFrame导出为noisy_data.xlsx文件。
注意事项
- 原始数据文件
data.txt应该是一个包含多行和三列的文本文件,每列代表一个维度,每行代表一个样本。可以根据实际情况修改数据的维数和文件名。 - 在注入高斯噪声时,
stddev参数代表噪声的标准差,可以根据实际需求进行调整。 - 最后生成的Excel文件为
noisy_data.xlsx。
总结
本示例代码展示了如何使用Python的NumPy和Pandas库,将多组多维已知数据导入Excel表格,并注入高斯噪声以扩充样本数量,最后将结果导出为新的Excel文件。您可以根据实际情况修改代码中的参数和文件名。
原文地址: https://www.cveoy.top/t/topic/nTvb 著作权归作者所有。请勿转载和采集!