簡體   English   中英

切片 numpy 數組取每 n 個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM