如何嵌套生成器

克里斯维尔德贝格

我正在研究生成器以使我的一些代码更有效率。目前想知道我可以/应该如何处理每个创建列表的嵌套 for 循环。嵌套循环为 for 循环的每一步重新生成一个值列表。这些值是 3 列馈送数据的向量归一化。从此列表中获取最大值并将其添加到函数返回的列表中。似乎可以通过使用生成器来提高效率。但是,我不确定如何处理嵌套的 for 循环,因为该函数将在第一次产生时停止。

目前的代码;

def define_max_values(data, indexes):

    max_values = []

    for iter in range(len(indexes)):
        data_index_window = data[index[iter] - 5:index[iter] + 50]
        for i in range(len(data_index_window)):
            sub_list = []   
            sub_list.append(np.linalg.norm(data_index_window.iloc[i, 0:3].values))

        max_values.append(max(sub_list))
    return max_values

我认为这可以变成这样,使用 1 个生成器

def define_max_values(data, indexes):
     for iter in range(len(indexes)):
            data_index_window = data[index[iter] - 5:index[iter] + 50]
            for i in range(len(data_index_window)):
                sub_list = []
                sub_list.append(np.linalg.norm(data_index_window.iloc[i, 0:3].values))

            yield(max(sub_list)

这似乎已经更具可读性/更高效的代码,但想知道我是否/如何用另一个产量替换内部 list.append 。

哈奇克

max 不需要序列,它也可以与生成器一起使用,例如:

def define_max_values(data, indexes):
    for iter in range(len(indexes)):
        data_index_window = data[index[iter] - 5:index[iter] + 50]
        yield max(np.linalg.norm(
                          data_index_window.iloc[i, 0:3].values) \
                  for i in range(len(data_index_window)))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

生成器中嵌套的异常行为

来自分类Dev

生成器中嵌套的异常行为

来自分类Dev

生成器中嵌套的异常行为

来自分类Dev

生成器中嵌套的异常行为

来自分类Dev

使用生成器而不是嵌套循环

来自分类Dev

转置嵌套生成器

来自分类Dev

嵌套生成器未正确触发

来自分类Dev

带生成器的嵌套列表理解

来自分类Dev

如何使用Mocha测试嵌套的ES6生成器?

来自分类Dev

如何在Laravel 8的查询生成器中使用嵌套函数substr(),cast()和Max()?

来自分类Dev

如何发布yomen生成器?

来自分类Dev

如何获得模型的空生成器?

来自分类Dev

如何从生成器读取tarfile?

来自分类Dev

Java随机生成器如何工作?

来自分类Dev

Python递归生成器如何工作?

来自分类Dev

如何实现简单的ID生成器?

来自分类Dev

如何提高数据生成器的效率?

来自分类Dev

如何正确锁定异步生成器?

来自分类Dev

如何扩展laravels查询生成器?

来自分类Dev

如何获得模型的空生成器?

来自分类Dev

如何实现$ RANDOM之类的“生成器”?

来自分类Dev

如何删除???? 来自dompdf生成器

来自分类Dev

如何创建平台生成器?

来自分类Dev

如何调试 .zip 生成器算法?

来自分类Dev

如何使用生成器填充列?

来自分类Dev

从生成器调用生成器

来自分类Dev

嵌套在生成器内部的函数的JavaScript产量

来自分类Dev

带有嵌套对象的生成器模式

来自分类Dev

生成器模式,模板和嵌套类