首页 > 解决方案 > 如何从 numpy 数组中切出一个正方形并从中创建一个数组?

问题描述

我想基本上做到这一点:

data = np.arange(25).reshape(5, 5)
print(data)
>> [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]

然后它会以某种方式切断它,我最终会得到这个

[[6 7 8]
[11 12 13]
[16 17 18]]

我尝试使用冒号,但我不知道它们是如何工作的(例如 data = data(1:3, 4:5))

标签: pythonpython-3.xnumpy

解决方案


你在正确的轨道上;只需对数组下标使用括号,对数组的两个维度使用相同的索引:

import numpy as np

data = np.arange(25).reshape(5, 5)
print(data)

print(data[1:4, 1:4])

输出

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]

[[ 6  7  8]
 [11 12 13]
 [16 17 18]]

推荐阅读