使用素数维整形数组时出错

问题描述 投票:1回答:1

我想将具有1501(波形)的数组重塑为(3,500),但是它抱怨如下。请帮助我解决这个问题。

x = np.array(x_train[2])
print(x.shape)
y = np.reshape(x, (int(len(x) / 500), 500))
print(y.shape)

这里是输出:

(1501,)

ValueError: cannot reshape array of size 1501 into shape (3,500)
python arrays numpy np
1个回答
1
投票

如果要查看500个数据块中的数据,但没有500个元素的倍数,则需要先截断或填充它。假设您要在此处进行截断,因为您具有波形,并且最后一个元素可能是重复序列,无论如何都会使FFT失效。

在那种情况下,您可以查看缓冲区中较少的数据,然后根据需要进行调整:

y = x[:(x.size // 500) * 500].reshape(-1, 500)

这里的好处是,如果您的数据在内存中合理地排列,它将不会进行复制,但是会将连续的视图返回到原始缓冲区中。

© www.soinside.com 2019 - 2024. All rights reserved.