python删除二维列表中的一行_python – 如何从2D numpy数组中删除第一行和最后一行和列?...

这个怎么样?

Hsub = H[1:-1, 1:-1]

1:-1范围意味着我们访问第二个索引中的元素,或1,然后我们上升到倒数第二个索引,如维度-1所示.我们独立地为两个维度执行此操作.当您对两个维度单独执行此操作时,结果是您访问每个维度的方式的交集,这实际上是切断第一行,第一列,最后一行和最后一列.

请记住,结束索引是独占的,所以如果我们以0:3为例,我们只获得维度的前三个元素,而不是四个.

此外,负指数意味着我们从最后访问数组. -1是在特定维度中访问的最后一个值,但由于排他性,我们得到了倒数第二个元素,而不是最后一个元素.从本质上讲,这与做:

Hsub = H[1:H.shape[0]-1, 1:H.shape[1]-1]

…但使用负指数更优雅.您也不必使用行数和列数来提取所需内容.以上语法与维度无关.但是,您需要确保矩阵至少为3 x 3,否则您将收到错误.

小奖金

在MATLAB / Octave中,您可以在不使用尺寸的情况下实现相同的目标:

Hsub = H(2:end-1, 2:end-1);

关于索引的end关键字意味着获取特定维度的最后一个元素.

使用示例

这是一个例子(使用IPython):

In [1]: import numpy as np

In [2]: H = np.meshgrid(np.arange(5), np.arange(5))[0]

In [3]: H

Out[3]:

array([[0, 1, 2, 3, 4],

[0, 1, 2, 3, 4],

[0, 1, 2, 3, 4],

[0, 1, 2, 3, 4],

[0, 1, 2, 3, 4]])

In [4]: Hsub = H[1:-1,1:-1]

In [5]: Hsub

Out[5]:

array([[1, 2, 3],

[1, 2, 3],

[1, 2, 3]])

如您所见,第一行,第一列,最后一行和最后一列已从源矩阵H中移除,其余部分已放置在输出矩阵Hsub中.

    原文作者:weixin_39635657
    原文地址: https://blog.csdn.net/weixin_39635657/article/details/110397407
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞