【问题标题】:Extracting several arrays/lists from single array based on list of entry/outry indices without looping over indices根据入口/出口索引列表从单个数组中提取多个数组/列表,而不循环索引
【发布时间】:2020-03-07 23:48:09
【问题描述】:

我想根据索引列表从单个数组中提取多个数组或列表。我知道如何解决这个索引循环:

import numpy as np

Data = np.arange(15)
in_list = [1,5,10]
out_list = [3,8,12]
interval = []
for in_ind,out_ind in zip(in_list,out_list):
    interval.append(Data[in_ind:out_ind])

>>> interval
[array([1, 2]), array([5, 6, 7]), array([10, 11])]

我的“数据”数组非常大,我的索引列表包含超过 10000 个元素。因此,循环遍历索引非常耗时。如何在不循环遍历索引和/或多次调用“数据”数组的情况下得出相同的结果?

【问题讨论】:

    标签: python


    【解决方案1】:

    对于表示索引范围只需要第一个和最后一个元素

    in_list = [1,5,10]
    out_list = [3,8,12]
    interval = []
    for in_ind,out_ind in zip(in_list,out_list):
        interval.append(range(in_ind,out_ind))
    

    接下来,in_ind 和 out_ind 之间的元素将仅在迭代具体范围值时进行评估

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2014-11-09
      • 2022-06-29
      • 1970-01-01
      • 2021-05-13
      • 2016-06-11
      • 2020-05-22
      相关资源
      最近更新 更多