我有一个形状为 24576x25 的numpy数组,我想从中提取3个数组。第一个数组包含每个1st,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
答案 0 :(得分:0)
import numpy as np
a = np.arange(24576*25).reshape((24576,25))
a[::3]
a[::3].shape
给您(8192, 25)
答案 1 :(得分:0)
对原始尝试进行简单的调整即可产生所需的结果:
X,Y = np.mgrid[0:24576:1, 0:25:1]
a = X[0::3,:]
b = X[1::3,:]
c = X[2::3,:]