[英]Slicing numpy array taking every nth element
我有一個形狀為24576x25的 numpy 數組,我想從中提取 3 個數組。 其中第一個數組包含1st,4th,7th,10th,...
1、4、7、10、... 元素,而第二個數組包含2nd,5,8,11th,...
元素,第三個數組包含3rd,6,9,12th,...
output 陣列大小將為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
import numpy as np
a = np.arange(24576*25).reshape((24576,25))
a[::3]
a[::3].shape
給你(8192, 25)
對您的原始嘗試進行簡單的調整應該會產生您想要的結果:
X,Y = np.mgrid[0:24576:1, 0:25:1]
a = X[0::3,:]
b = X[1::3,:]
c = X[2::3,:]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.