当前位置: 首页 > 面试题库 >

Python:切片多维数组

祁飞翰
2023-03-14
问题内容

我是Python和numpy的新手。我已经弄清楚如何对一维序列进行切片:arr[start:end],并访问数组中的元素:el = arr[row][col]

尝试类似slice = arr[0:2][0:2]arrnumpy数组在哪里)的操作不会给我前两行和一列,而是会重复前两行。我刚才做了什么,以及如何沿着另一个维度进行切片?


问题答案:

如果使用numpy,这很容易:

slice = arr[:2,:2]

或者如果您想要0,

slice = arr[0:2,0:2]

您将得到相同的结果。

*请注意,这slice实际上是内置类型的名称。通常,我建议给您的对象一个不同的“名称”。

换句话说,如果要使用列表列表*:

slice = [arr[i][0:2] for i in range(0,2)]

(请注意,此处的0不必要: [arr[i][:2] for i in range(2)]也可以使用。)。

我在这里所做的是,一次获取了每个所需的行1(arr[i])。然后,从该行中切出想要的列,并将其html" target="_blank">添加到我正在构建的列表中。

如果您天真地尝试:arr[0:2]您将获得前两行,如果再对它们进行切片arr[0:2][0:2],则只需将前两行切片。

*这实际上也适用于numpy数组,但是与我上面发布的“本机”解决方案相比,它的速度较慢。



 类似资料:
  • Go语言中同样允许使用多维切片,声明一个多维数组的语法格式如下: var sliceName [][]...[]sliceType 其中,sliceName 为切片的名字,sliceType为切片的类型,每个 代表着一个维度,切片有几个维度就需要几个 。 下面以二维切片为例,声明一个二维切片并赋值,代码如下所示。 上面的代码也可以简写为下面的样子。 上面的代码中展示了一个包含两个元素的外层切片,同

  • 问题内容: 我需要从数组中的多个位置提取数据。 一个简单的数组是: 我对切片很熟悉。例如:- 会给我:- 但是,我无法摆脱多个层面。例如:- 给我 尽管搜索了两本Python书籍和Internet,但我无法确定要使用的语法。 问题答案: 您可以切片两次并加入它们。

  • 问题内容: 我有一个要转换为Python的Java小问题。因此,我需要一个多维数组。在Java中,它看起来像: 其他值将在bei循环中创建并写入数组。 如何实例化数组? PS:不涉及矩阵乘法… 问题答案: 您可以使用嵌套列表创建它: 如果必须动态的话,它会更加复杂,为什么不自己编写一个小类呢? 可以这样使用: 我敢肯定,可以更有效地实施它。:) 如果您需要多维数组,则可以创建一个数组并计算偏移量,

  • 问题内容: 我的问题的一个具体示例是“在此示例中如何获得‘3210’?” 我可以写foo [4:0:-1],foo [5:1:-1]等并得到我期望的结果,这似乎很奇怪,但是无法编写切片以便得到‘3210 ‘。 一个临时的方法是foo [0:4] [::-1],但这会在进程中创建两个字符串对象。我实际上将执行此操作数十亿次,因此每个字符串操作都非常昂贵。 我一定想念一些愚蠢而轻松的事情。谢谢你的帮助

  • rank ▲ ✰ vote url 29 569 323 918 url 理解Python切片 对于Python的切片有什么好的资料吗?对我来说理解切片有点难度.它看起来非常有用,但是我还是不能理解它,我正在找有什么好的资料. 非常简单: a[start:end] # 从start开始到end-1结束 a[start:] # 从start开始直到末尾 a[:end] # 从头部开始

  • 问题内容: 用更多索引范围(例如by和)对数据帧进行切片的pythonic方法是什么? 我想要一个更优雅的方式: 结果: 像这样的东西会更优雅: 问题答案: 您可以使用numpy的“切片技巧”: 给出: