【发布时间】:2020-07-07 11:08:03
【问题描述】:
我有一个形状为 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
【问题讨论】:
-
a[:, ::3]应该没问题。a是 numpy.ndarray 吗? -
@paime 不起作用,是的,它是一个 ndarray
-
我需要 x.shape 、 y.shape 和 z.shape = 8192x25
-
如果你需要8192x25,那么它是
a[0::3]。 @bigbounty 的回答绝对有效。 -
它给了我相同的大小,但元素选择是错误的..因为它应该返回 0,3,6,9,,... 但它给了我 0 1 2 3,...