如何在python中声明变量?

时间:2014-07-19 14:26:58

标签: python python-3.x

我想我觉得这有点不对劲。我有一组数据集我正在尝试进行一些分析。这就是我想要做的。比如说以下是数组

signal=[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...],我想将数据点0:3存储在某处,我需要它们,并用零替换0:3。这就是我这样做的方法,但最终结果是正确的,但存储的0:3数据点也是零。有人可以帮我从这里出去吗。我认为这样做很简单,但过去几天我一直在与此作斗争。提前谢谢!

这是我的代码:

n = len(signal)

for i in range(n):

    first_3points = signal[0:3]

    signal[0:3] = 0

    trancated_signal = signal

我很高兴看到我哪里出错了!

2 个答案:

答案 0 :(得分:2)

看起来你的应用程序更适合使用numpy,它很好地开发用于表示信号样本的数组。您可能已经在使用numpy,因为如果signal是列表,则作业signal[0:3] = 0会引发TypeError。这是我用numpy做的方式:

import numpy as np
N = 256
signal = np.ones(N)
first3 = signal[0:3].copy()
signal[0:3] = 0

请注意,如果您没有first3 signal中的第一个元素的副本,它只会成为signal的视图,并且当您更改{{1}中的元素时你也改变了signal。如果我正确理解了您的问题,那么您需要在first3 signal中保存原始元素,然后才能更改它们。

答案 1 :(得分:1)

使用普通列表而不是numpy这很简单:

signal = [1] * 20
first_3_points = signal[:3]
signal[:3] = [0] * 3

原始代码中的循环似乎是不必要的。