如何从一维 numpy 数组和两个限制数组中获取切片区域的二维数组

德洛萨里

我想知道是否有一个奇特的 numpy 索引来执行这个操作。如果我有一个数组和两个限制,很容易用冒号索引:

import numpy as np

myArray = np.arange(10)

lowLimit = 2
highLimit = 5

print myArray[lowLimit:highLimit]

这给[2 3 4]. 但是,如果您有两个用于限制的数组:

lowLimit = np.ones(10) * 2
highLimit = np.ones(10) * 5

之前的操作不起作用。

你将如何获得带有 myArray 切片区域的二维数组?:

array([[2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4],
       [2, 3, 4]])

更新:在此示例中,限制数组具有常量值,但情况可能并非如此。

保利

您连接/加入一些切片的一种或多种方式:

In [139]: x = np.arange(10)
In [140]: low,high = [0,3,5,3],[2,5,7,5]

列表理解:

In [141]: [x[i:j] for i,j in zip(low,high)]
Out[141]: [array([0, 1]), array([3, 4]), array([5, 6]), array([3, 4])]

由于所有切片的大小相同,因此可以将它们连接成一个新数组:

In [142]: np.stack(_)
Out[142]: 
array([[0, 1],
       [3, 4],
       [5, 6],
       [3, 4]])

如果它们的长度不同,stack将不起作用。np.array(_)将产生一个对象 dtype 数组,具有不同长度的组件数组。

您还可以生成所有索引的数组,并使用它:

In [160]: np.hstack([np.r_[slice(i,j)] for i,j in zip(low,high)])
Out[160]: array([0, 1, 3, 4, 5, 6, 3, 4])
In [161]: x[_].reshape(4,2)     # reshape if all slices are same length:
Out[161]: 
array([[0, 1],
       [3, 4],
       [5, 6],
       [3, 4]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Numpy将值从一维数组插入二维数组

来自分类Dev

从一维数组中的值开始切片二维数组

来自分类Dev

如何从熊猫数据框中获取一个二维的numpy数组?-错误的形状

来自分类Dev

用numpy在python中切片二维数组时,数字相同但形状不同

来自分类Dev

分配给二维 NumPy 数组的切片

来自分类Dev

在Python 3中,如何在二维numpy数组中交换两个子数组?

来自分类Dev

在Python 3中,如何在二维numpy数组中交换两个子数组?

来自分类Dev

NumPy:一维numpy数组,用于切片列表

来自分类常见问题

Python Numpy:将数据从一维数组插入二维数组

来自分类Dev

Python Numpy:将数据从一维数组插入二维数组

来自分类Dev

如何从numpy的一维数组中提取零维切片

来自分类Dev

如何在一次操作中使用两个二维蒙版对一个二维数组进行切片?

来自分类Dev

numpy的,我如何找到一个二维数组中的总行和一个一维数组中的总列

来自分类Dev

获取二维数组的数组切片

来自分类Dev

获取二维数组的数组切片

来自分类Dev

底图和numpy二维数组

来自分类Dev

如何更新二维numpy数组?

来自分类Dev

如何生成二维numpy数组?

来自分类Dev

用另一个二维数组中的列替换二维 numpy 数组中的列

来自分类Dev

二维numpy数组中的阈值

来自分类Dev

如何从一个numpy数组中提取所需的维数

来自分类Dev

如何从一维Numpy数组的所有排列中删除所有圆桌排列?

来自分类Dev

有效地找到两个二维numpy数组的行相交

来自分类Dev

二维numpy数组的块均值(在两个维度上)

来自分类Dev

有效地找到两个二维numpy数组的行相交

来自分类Dev

将两个二维 numpy 数组相乘的最快方法是什么?

来自分类Dev

如何使用内置的“切片”访问二维数组中的二维块?

来自分类Dev

二维数组-切片和索引

来自分类Dev

如何在二维 numpy 数组中设置值?

Related 相关文章

  1. 1

    如何使用Numpy将值从一维数组插入二维数组

  2. 2

    从一维数组中的值开始切片二维数组

  3. 3

    如何从熊猫数据框中获取一个二维的numpy数组?-错误的形状

  4. 4

    用numpy在python中切片二维数组时,数字相同但形状不同

  5. 5

    分配给二维 NumPy 数组的切片

  6. 6

    在Python 3中,如何在二维numpy数组中交换两个子数组?

  7. 7

    在Python 3中,如何在二维numpy数组中交换两个子数组?

  8. 8

    NumPy:一维numpy数组,用于切片列表

  9. 9

    Python Numpy:将数据从一维数组插入二维数组

  10. 10

    Python Numpy:将数据从一维数组插入二维数组

  11. 11

    如何从numpy的一维数组中提取零维切片

  12. 12

    如何在一次操作中使用两个二维蒙版对一个二维数组进行切片?

  13. 13

    numpy的,我如何找到一个二维数组中的总行和一个一维数组中的总列

  14. 14

    获取二维数组的数组切片

  15. 15

    获取二维数组的数组切片

  16. 16

    底图和numpy二维数组

  17. 17

    如何更新二维numpy数组?

  18. 18

    如何生成二维numpy数组?

  19. 19

    用另一个二维数组中的列替换二维 numpy 数组中的列

  20. 20

    二维numpy数组中的阈值

  21. 21

    如何从一个numpy数组中提取所需的维数

  22. 22

    如何从一维Numpy数组的所有排列中删除所有圆桌排列?

  23. 23

    有效地找到两个二维numpy数组的行相交

  24. 24

    二维numpy数组的块均值(在两个维度上)

  25. 25

    有效地找到两个二维numpy数组的行相交

  26. 26

    将两个二维 numpy 数组相乘的最快方法是什么?

  27. 27

    如何使用内置的“切片”访问二维数组中的二维块?

  28. 28

    二维数组-切片和索引

  29. 29

    如何在二维 numpy 数组中设置值?

热门标签

归档