每N个元素对numpy数组进行切片

2024-04-24 21:26:51 发布

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

我有一个形状24576x25的numpy数组,我想从中提取3个数组。其中第一个数组包含each1st,4th,7th,10th,...元素 而第二个数组包含2nd,5,8,11th,...元素,第三个数组包含3rd,6,9,12th,... 输出阵列大小将为8192x25。 我在MATLAB中做了以下工作

c = reshape(a,1,[]);
x = c(:,1:3:end);
y = c(:,2:3:end);
z = c(:,3:3:end);

我曾在python中尝试过a[:,0::3],但只有当我的形状数组可以被3整除时,这才有效。我能做什么

X,Y = np.mgrid[0:24576:1, 0:25:1]
a = X[:,::,3]
b = X[:,1::3]
c = X[:,2::3]

也不行。我需要a,b,c.shape=8192x25


Tags: numpy元素np数组end形状shapematlab
2条回答

对您的原始尝试进行简单的调整应该会产生您想要的结果:

X,Y = np.mgrid[0:24576:1, 0:25:1]
a = X[0::3,:]
b = X[1::3,:]
c = X[2::3,:]
import numpy as np
a = np.arange(24576*25).reshape((24576,25))
a[::3]

a[::3].shape给你(8192, 25)

相关问题 更多 >