根据第二个数组的元素选择numpy数组的元素

迪格斯

考虑形状为(7,6)的numpy数组A

A = array([[0, 1, 2, 3, 5, 8],
           [4, 100, 6, 7, 8, 7],
           [8, 9,  10,  11, 5, 4],
           [12, 13, 14, 15, 1, 2],
           [1, 3, 5, 6, 4, 8],
           [12, 23, 12, 24, 4, 3],
           [1, 3, 5, 7,  89, 0]])

以及具有相同形状的第二个numpy数组r,其中包含从中心点A(3,2)= 0开始的半径A:

 r = array([[3, 3, 3, 3, 3, 4],
            [2, 2, 2, 2, 2, 3],
            [2, 1, 1, 1, 2, 3],
            [2, 1, 0, 1, 2, 3],
            [2, 1, 1, 1, 2, 3],
            [2, 2, 2, 2, 2, 3],
            [3, 3, 3, 3, 3, 4]])

我想拾取位于r的位置1的A的所有元素,即[9,10,11,15,4,6,5,13],位于A的位置2的所有元素r等。我有一些numpy函数来做到这一点吗?谢谢

比里科

您可以A通过执行类似的操作来选择一个部分A[r == 1],以将所有部分作为列表进行选择[A[r == i] for i in range(r.max() + 1)]这会起作用,但可能会效率不高,具体取决于要输入的值有多大,r因为您需要r == i为每个计算i

您也可以使用此技巧,首先基于r对A进行排序,然后仅在正确的位置拆分已排序的A数组。看起来像这样:

r_flat = r.ravel()
order = r_flat.argsort()
A_sorted = A.ravel()[order]
r_sorted = r_flat[order]
edges = r_sorted.searchsorted(np.arange(r_sorted[-1] + 1), 'right')

sections = []
start = 0
for end in edges:
    sections.append(A_sorted[start:end])
    start = end

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

numpy数组从第二个数组插入第二个元素

来自分类Dev

选择数组中的第二个XML元素

来自分类Dev

查找与第二个数组的元素匹配的数组的元素

来自分类Dev

如何在第二个数组的元素之后粘贴元素

来自分类Dev

从具有第二个数组的元素的数组中获取数据

来自分类Dev

获取在php中的第二个数组中有键的数组元素

来自分类Dev

根据子数组的第二个元素对多维数组进行排序

来自分类Dev

索引到第二个数组元素总是返回零

来自分类Dev

Perl在第二个元素之后加入数组

来自分类Dev

如何访问结构数组的第二个元素?

来自分类Dev

查找数组的第二个元素

来自分类Dev

从第二个开始连接数组元素

来自分类Dev

检查第二个数组是否包含第一个数组的元素,然后显示

来自分类Dev

从一个数组获取索引并更新第二个数组中相同索引的元素

来自分类Dev

Python:比较两个数组的所有元素并修改第二个数组

来自分类Dev

如何在for循环中选择数组的每个第二个元素?

来自分类Dev

对于数组中的每个元素,将字符串添加到第二个数组中

来自分类Dev

将一个数组推入另一个数组将覆盖第二个数组中的所有元素

来自分类Dev

删除元素并更新数组后,获取数组的第二个元素

来自分类Dev

根据PHP中第二个数组的键获取数组的值

来自分类Dev

根据第二个数组对NSManagedObjects数组进行排序

来自分类Dev

根据第二个数组对多维数组排序

来自分类Dev

如何比较第一个数组的每个元素和第二个数组的每个元素

来自分类Dev

根据条件用第二个数组中的值替换 numpy 单元格

来自分类Dev

AngularJS过滤到ng-repeat,如果元素在第二个数组中,则排除它们

来自分类Dev

从数组中填充Spinner1,然后根据第一个Spinner选择为Spinner2选择第二个数组

来自分类Dev

删除第一个数组中与第二个数组中的元素匹配的所有子字符串

来自分类Dev

基于一个数组呈现复选框,并基于第二个数组呈现选中元素

来自分类Dev

如何获取数组红宝石中数组的第二个元素

Related 相关文章

  1. 1

    numpy数组从第二个数组插入第二个元素

  2. 2

    选择数组中的第二个XML元素

  3. 3

    查找与第二个数组的元素匹配的数组的元素

  4. 4

    如何在第二个数组的元素之后粘贴元素

  5. 5

    从具有第二个数组的元素的数组中获取数据

  6. 6

    获取在php中的第二个数组中有键的数组元素

  7. 7

    根据子数组的第二个元素对多维数组进行排序

  8. 8

    索引到第二个数组元素总是返回零

  9. 9

    Perl在第二个元素之后加入数组

  10. 10

    如何访问结构数组的第二个元素?

  11. 11

    查找数组的第二个元素

  12. 12

    从第二个开始连接数组元素

  13. 13

    检查第二个数组是否包含第一个数组的元素,然后显示

  14. 14

    从一个数组获取索引并更新第二个数组中相同索引的元素

  15. 15

    Python:比较两个数组的所有元素并修改第二个数组

  16. 16

    如何在for循环中选择数组的每个第二个元素?

  17. 17

    对于数组中的每个元素,将字符串添加到第二个数组中

  18. 18

    将一个数组推入另一个数组将覆盖第二个数组中的所有元素

  19. 19

    删除元素并更新数组后,获取数组的第二个元素

  20. 20

    根据PHP中第二个数组的键获取数组的值

  21. 21

    根据第二个数组对NSManagedObjects数组进行排序

  22. 22

    根据第二个数组对多维数组排序

  23. 23

    如何比较第一个数组的每个元素和第二个数组的每个元素

  24. 24

    根据条件用第二个数组中的值替换 numpy 单元格

  25. 25

    AngularJS过滤到ng-repeat,如果元素在第二个数组中,则排除它们

  26. 26

    从数组中填充Spinner1,然后根据第一个Spinner选择为Spinner2选择第二个数组

  27. 27

    删除第一个数组中与第二个数组中的元素匹配的所有子字符串

  28. 28

    基于一个数组呈现复选框,并基于第二个数组呈现选中元素

  29. 29

    如何获取数组红宝石中数组的第二个元素

热门标签

归档