Python Numpy二维阵列切片

Python Numpy二维阵列切片,python,arrays,numpy,data-science,slice,Python,Arrays,Numpy,Data Science,Slice,希望你们都安全健康 我在学习NumPy 2D数组切片的概念时,遇到了以下语法,这反过来给了我一个索引错误 img_slice[np.greater_equal(img_slice[:,:,0],100) & np.less_equal(img_slice[:,:,0],150)] = 0 plt.figure() plt.imshow(img_slice) 错误 有人能给我解释一下img_slice[:,:,0]是如何工作的吗 先谢谢你 呆在家里安全 如果img_切片为2d,则img_

希望你们都安全健康

我在学习NumPy 2D数组切片的概念时,遇到了以下语法,这反过来给了我一个索引错误

img_slice[np.greater_equal(img_slice[:,:,0],100) & np.less_equal(img_slice[:,:,0],150)] = 0
plt.figure()
plt.imshow(img_slice)
错误

有人能给我解释一下img_slice[:,:,0]是如何工作的吗

先谢谢你


呆在家里安全

如果
img_切片
为2d,则
img_切片[:,:,0]
不起作用。该索引假设它是三维的,可能是一个具有形状
(h,w,3)
的彩色图像。img_slice[:,:,0]将尝试将三维数组切片为二维数组。“:”表示“沿该维度的所有索引”。您得到这个错误的事实向我表明您试图在2D数组中使用它。
    IndexError                                Traceback (most recent call last)
<ipython-input-14-689f14047e87> in <module>
----> 1 img_slice[np.greater_equal(img_slice[:,:,0],100) & np.less_equal(img_slice[:,:,0],150)] = 0
      2 plt.figure()
      3 plt.imshow(img_slice)
      4 

IndexError: too many indices for array
 [[255 255 255 255 255 255 255 255 255 255]
 [  0   0   0   0   0   0   0   0   0   0]
 [255 255 255 255 255 255 255 255 255 255]
 [  0   0   0   0   0   0   0   0   0   0]
 [255 255 255 255 255 255 255 255 255 255]
 [  0   0   0   0   0   0   0   0   0   0]
 [255 255 255 255 255 255 255 255 255 255]
 [  0   0   0   0   0   0   0   0   0   0]
 [255 255 255 255 255 255 255 255 255 255]
 [  0   0   0   0   0   0   0   0   0   0]]