繁体   English   中英

(Python--numpy)如何在不循环的情况下调整numpy数组的大小并对其进行切片?

[英](Python--numpy) how to resize and slice an numpy array with out a loop?

所以说我有这个2d numpy数组:

(
    [
        [1,2,3,4],
        [5,6,7,8],
        [9,8,7,6],
        [5,4,3,2]
    ]
);

我想对此进行子采样并像这样获得2乘2(索引每隔一行和每隔一列):

(
    [
        [1,3],
        [9,7]
    ]
)

有没有办法做到这一点而没有任何循环?

谢谢!

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

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]])

语法为[dim1_start:dim1_stop:dim1_step, dim2_start:dim2_stop:dim2_step]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM