我被一个for循环问题困住了
我将一个信号作为一个数组,并将其分为多个时期
times = np.arange(0, duration, 1 / sfreq)
nse1 = np.random.rand(times.size) * nse_amp
x = amp * np.sin( 2 * np.pi * 200 * times ) + nse1
x2 = np.array_split(x,epochs)
我第二次这样做是为了一个y信号。 假设我的信号x的形状是(100),那么我的两个历元的分裂数组的形式应该是(2,50)
现在我想在for循环中使用一个函数来计算拆分数组中每个段的值…类似于:
for i in range(0,epochs):
Rxy[i], freqs_xy[i] = mlab.csd(x2[i], y2[i], NFFT=nfft, Fs=sfreq)
所以我会得到一个Rxy的数组,比如(2,50)
希望你得到我想要的
大家好, 丹尼尔
要将
Rxy
构建为数组,请首先为数组分配空间:然后可以使用循环来填充
Rxy
行:顺便说一下,
np.array_split(x,epochs)
返回数组的列表。那不是 与形状(2, 50)
的数组相同。如果你能保证epochs
将x
拆分为长度相等的数组,您可以使用相反。那么
x2
将是形状(2, 50)
的数组reshape
更快 因为reshape
只需要在array_split
必须将数据分配并复制到新的数组中。不管怎样,这是 一般来说,最好将数据保存在一个大数组中,而不是将部分数据保存在一个列表中 数组,因为列表上的计算通常需要Python循环 使用NumPy时的性能问题。当然,有时Python会循环 无法避免,这里调用mlab.csd
时似乎就是这种情况相关问题 更多 >
编程相关推荐