将所有子数组相加

2024-06-09 08:34:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我被卡住了。在

我是python新手,需要一些帮助。在

我想创建一个函数,更喜欢数组形式,把我所有的子数组加在一起。不使用数字总和. 在

amp , amp2 = 1., 1.
epochs = 2
sfreq, duration = 10., 5
times = np.arange(0, duration, 1 / sfreq)
nfft = 512

x =  amp * np.sin( 2 * np.pi * 200 * times            ) + nse1
y = amp2 * np.sin( 2 * np.pi * 200 * times + np.pi/2  ) + nse2

x2 = np.array_split(x,epochs)
y2 = np.array_split(y,epochs)

Rxy = np.zeros((epochs,nfft/2+1), dtype=np.complex)
freqs_xy = np.zeros((epochs,nfft/2+1), dtype=np.complex)
for i in range(epochs):
    Rxy[i], freqs_xy = mlab.csd(x2[i], y2[i], NFFT=nfft, Fs=sfreq)

    Rxy.shape
    (epochs ,257)

我想要一个函数,它将添加Rxy[0]+Rxy[1]+。。。+Rxy[纪元-1]

通过使用数字总和(Rxy)它只给我一个值。 但使用Rxy[0]+Rxy[1]我将所有值相加。并获得尺寸

^{pr2}$

有人知道如何得到第二个版本吗?!在

谢谢你的帮助。在


Tags: 函数nppi数字数组sinampduration
2条回答

您需要在np.sum中指定axis。在您的例子中,axis是{},因为您想要添加所有实际上是行的子数组。所以,试试这个:

np.sum(Rxy, axis=0)

据我所知,你试图把一个2D数组变成1D数组。{所以你可以使用}。

如果您指的是列表列表,则可以使用列表理解来实现:

x = [item for sub_list in whole_list for item in sub_list]

相关问题 更多 >