一维信号添加噪声并保存为csv文件 python实现

原始数据放在csv文件中的第二列,第一列为日期,如下所示

 

 想要对第二列数据进行多次添加噪声,做数据增广

 最后将生成的带噪声数据放在csv文件中,每次添加噪声的数据放在一列

第一列还是原始的日期信息

代码如下

import pandas as pd
import numpy as np

# 读取原始数据
data = pd.read_csv('original_data.csv')

# 选取需要添加噪声的列
column_to_noise = 'pressure'

# 假如生成10个样本的噪声数据
num_samples = 10
noisy_data = pd.DataFrame()
for i in range(num_samples):
    # 添加白噪声
    noise = np.random.normal(0, 1, len(data))
    noisy_column = data[pressure] + noise
    
    # 把新生成的列添加到数据中
    new_column_name = f'{column_to_noise}_noisy_{i+1}'
    noisy_data[new_column_name] = noisy_column

# 合并日期列和噪声数据列
result = pd.concat([data['date'], noisy_data], axis=1)

# 保存到同一个CSV文件中
result.to_csv('noisy_data.csv', index=False)

生成数据如下:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个比较复杂的需求,我需要详细解释一下步骤。 1. 导入必要的库 首先,我们需要导入 PyTorch 和 pandas 库,分别用于深度学习和数据处理。 ```python import torch import pandas as pd ``` 2. 读取 CSV 文件 使用 pandas 库的 `read_csv` 函数读取 CSV 文件,并将其转换为 PyTorch 的张量。 ```python data = pd.read_csv('data.csv') data_tensor = torch.tensor(data.values) ``` 3. 定义 DCGAN 模型 DCGAN 是一种生成对抗网络,其目的是从随机噪声生成逼真的图像。在这里,我们将使用 DCGAN 模型来生成代码。我们可以使用 PyTorch 官方提供的 DCGAN 示例作为参考。 ```python class Generator(nn.Module): def __init__(self, ngpu): super(Generator, self).__init__() self.ngpu = ngpu self.main = nn.Sequential( # 输入为100维的随机向量 nn.ConvTranspose2d(100, 512, 4, 1, 0, bias=False), nn.BatchNorm2d(512), nn.ReLU(True), # 输出为(512, 4, 4)的张量 nn.ConvTranspose2d(512, 256, 4, 2, 1, bias=False), nn.BatchNorm2d(256), nn.ReLU(True), # 输出为(256, 8, 8)的张量 nn.ConvTranspose2d(256, 128, 4, 2, 1, bias=False), nn.BatchNorm2d(128), nn.ReLU(True), # 输出为(128, 16, 16)的张量 nn.ConvTranspose2d(128, 64, 4, 2, 1, bias=False), nn.BatchNorm2d(64), nn.ReLU(True), # 输出为(64, 32, 32)的张量 nn.ConvTranspose2d(64, 1, 4, 2, 1, bias=False), nn.Tanh() # 输出为(1, 64, 64)的张量 ) def forward(self, input): return self.main(input) # 创建生成器实例 netG = Generator(ngpu).to(device) ``` 4. 训练 DCGAN 模型 接下来,我们需要训练 DCGAN 模型。我们将使用随机噪声作为输入,并将生成的代码保存CSV 文件。 ```python # 设置训练参数 criterion = nn.BCELoss() fixed_noise = torch.randn(64, nz, 1, 1, device=device) real_label = 1 fake_label = 0 optimizerG = optim.Adam(netG.parameters(), lr=lr, betas=(beta1, 0.999)) # 开始训练 for epoch in range(num_epochs): for i, data in enumerate(dataloader, 0): # 训练生成器 netG.zero_grad() noise = torch.randn(batch_size, nz, 1, 1, device=device) fake = netG(noise) label = torch.full((batch_size,), real_label, device=device) output = netD(fake.detach()).view(-1) errG = criterion(output, label) errG.backward() optimizerG.step() # 保存生成的代码到 CSV 文件 if i % 100 == 0: fake = netG(fixed_noise) generated_data = fake.view(fake.size(0), -1).cpu().detach().numpy() generated_data_df = pd.DataFrame(generated_data) generated_data_df.to_csv('generated_data.csv', mode='a', header=False, index=False) ``` 在训练过程,我们将生成的代码保存CSV 文件。 5. 读取生成的代码 最后,我们可以使用 pandas 库读取生成的代码,并将其保存到新的 CSV 文件。 ```python generated_data = pd.read_csv('generated_data.csv', header=None) generated_data_tensor = torch.tensor(generated_data.values) generated_data_tensor.to_csv('generated_data_processed.csv', index=False) ``` 这样,我们就完成了从 CSV 文件读取数据、使用 DCGAN 模型生成代码,并将生成的代码保存CSV 文件的整个过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值