(Python--numpy)如何调整numpy数组的大小和切片而不产生循环?

(Python--numpy)如何调整numpy数组的大小和切片而不产生循环?,python,arrays,numpy,Python,Arrays,Numpy,假设我有一个2d numpy数组: ( [ [1,2,3,4], [5,6,7,8], [9,8,7,6], [5,4,3,2] ] ); 我想对此进行子示例,并得到2乘2的结果,就像这样(每隔一行和每隔一列编制索引): 有没有一种没有任何循环的方法可以做到这一点 谢谢大家! 是的,您可以使用步骤索引(在您的示例中,步骤为2): 返回 array([[1, 3], [9, 7]]) 这里的语法是[d

假设我有一个2d numpy数组:

(
    [
        [1,2,3,4],
        [5,6,7,8],
        [9,8,7,6],
        [5,4,3,2]
    ]
);
我想对此进行子示例,并得到2乘2的结果,就像这样(每隔一行和每隔一列编制索引):

有没有一种没有任何循环的方法可以做到这一点


谢谢大家!

是的,您可以使用步骤索引(在您的示例中,步骤为2):

返回

array([[1, 3],
       [9, 7]])
这里的语法是
[dim1\u开始:dim1\u停止:dim1\u步骤,dim2\u开始:dim2\u停止:dim2\u步骤]

import numpy as np

a = np.array([[1,2,3,4], [5,6,7,8], [9,8,7,6], [5,4,3,2]])
a[::2, ::2]
array([[1, 3],
       [9, 7]])