制作多维 numpy 数组
Make a multidimensional numpy array
我需要去除信号的直流部分。
为此,我有以下代码:
def removeDC(seq):
mean_seq = np.mean(seq)
seq_mod = np.array([])
for sample in seq:
seq_mod = np.append(seq_mod,sample - mean_seq)
return seq_mod
但是我的数据有 (31250, 5) 的 dimensions/shape,我希望它从每个通道中删除 DC。
这是我的尝试,但我不确定如何将正确的值添加到正确的频道索引
def removeDC(seq): #removing dc from signal, slik at amplituden varierer rundt 0
for i in range(0,seq.shape[1])):
mean_seq = np.mean(seq[:,i])
seq_mod = np.array([]) #need seq.shape[1] dimensions, problem here
for sample in seq[:,i]: #problem here
seq_mod[,i] = np.append(seq_mod, sample - mean_seq)#problem here
return seq_mod
另一种构建问题的方法是这样的:您有二维数据。让我们调用第一个 'row' 和第二个 'columns'(这是标准词汇,但在您的应用程序中它们可能是 'time' 和 'channel')。您有 31250 行和 5 列。你想计算每列的平均值,给你一个包含 5 个值的向量。然后,对于 31250 行中的每一行,您想要删除 5 个平均值。让我们开始吧!
data = np.random.random(size=(31250,5)) # just some random values...
means = data.mean(axis=0) #compute mean along the columns
data = data - means
最后一行有效,因为 numpy 将您的 5 列标识为向量的长度 5 means
。
在您的具体情况下,您可能希望将它们称为
signals = np.random.random(size=(31250,5))
dc_offset = signals.mean(axis=0)
centered_signals = signals - dc_offset
PS 查看广播的概念。它是编写可管理的 numpy 代码的关键。参见 https://numpy.org/doc/stable/user/basics.broadcasting.html
我需要去除信号的直流部分。 为此,我有以下代码:
def removeDC(seq):
mean_seq = np.mean(seq)
seq_mod = np.array([])
for sample in seq:
seq_mod = np.append(seq_mod,sample - mean_seq)
return seq_mod
但是我的数据有 (31250, 5) 的 dimensions/shape,我希望它从每个通道中删除 DC。 这是我的尝试,但我不确定如何将正确的值添加到正确的频道索引
def removeDC(seq): #removing dc from signal, slik at amplituden varierer rundt 0
for i in range(0,seq.shape[1])):
mean_seq = np.mean(seq[:,i])
seq_mod = np.array([]) #need seq.shape[1] dimensions, problem here
for sample in seq[:,i]: #problem here
seq_mod[,i] = np.append(seq_mod, sample - mean_seq)#problem here
return seq_mod
另一种构建问题的方法是这样的:您有二维数据。让我们调用第一个 'row' 和第二个 'columns'(这是标准词汇,但在您的应用程序中它们可能是 'time' 和 'channel')。您有 31250 行和 5 列。你想计算每列的平均值,给你一个包含 5 个值的向量。然后,对于 31250 行中的每一行,您想要删除 5 个平均值。让我们开始吧!
data = np.random.random(size=(31250,5)) # just some random values...
means = data.mean(axis=0) #compute mean along the columns
data = data - means
最后一行有效,因为 numpy 将您的 5 列标识为向量的长度 5 means
。
在您的具体情况下,您可能希望将它们称为
signals = np.random.random(size=(31250,5))
dc_offset = signals.mean(axis=0)
centered_signals = signals - dc_offset
PS 查看广播的概念。它是编写可管理的 numpy 代码的关键。参见 https://numpy.org/doc/stable/user/basics.broadcasting.html