python - 从两点之间的 numpy 数组获取值

标签 python arrays numpy

我有一个图像存储在 2D numpy 数组中。我想从该数组中提取矩形中的所有像素值。该矩形定义为((x1,y1),(x2,y2)),其中所有 x 和 y 自然都是数组索引。

我可以使用嵌套的 for 循环提取像素值,但是执行此操作的 Python 方法是什么?

最佳答案

只需使用切片即可。例如:

In [3]: a = numpy.arange(20).reshape((4,5))

In [4]: a
Out[4]: 
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])

In [5]: a[2:4, 3:5]
Out[5]: 
array([[13, 14],
       [18, 19]])

一般来说,您可以用切片替换索引,其中切片的形式为 start:stop 或可选的 start:stop:step 并且允许使用变量:

In [6]: x=2 ; print a[x-1:x+1, :]
[[ 5  6  7  8  9]
 [10 11 12 13 14]]

关于python - 从两点之间的 numpy 数组获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22081288/

相关文章:

python - 选择 n 列的每个交替组 - NumPy

python - 如何在文本文件中找到 "highlight"一个单词?

python - 使用python检查ubuntu中的dd状态

python - 如何在 Keras 或 Theano 中实现具有指数衰减学习率的卷积神经网络

c++ - 为什么我不能在我的复制构造函数中使用 std::copy?

python - 从 Numpy 数组的每一行中选择一个随机样本,不包括负数

python - 在Python3中制作简单的图形直方图

python - 将 python 颜色图修改为超出特定点的单个值

c - 在结构中存储和访问二维数组

java - 将对象数组转换为字符串数组