相关疑难解决方法(0)

在python中有一种更简单的方法来编写6个嵌套for循环吗?

这个问题现在已经有一段时间了.有没有更简单的方法for在python中编写嵌套循环?例如,如果我的代码是这样的:

  for y in range(3):
    for x in range(3):
      do_something()
      for y1 in range(3):
        for x1 in range(3):
          do_something_else()
Run Code Online (Sandbox Code Playgroud)

会有更简单的方法吗?我知道这段代码有效但是当你缩进而不是像我一样使用2个空格时,它可能会成为一个问题.

在示例中,只有4个嵌套for循环使事情变得更容易.

python for-loop nested-loops

38
推荐指数
5
解决办法
3万
查看次数

优雅的网格搜索python/numpy

我有一个有一堆参数的函数.我不想手动设置所有参数,而是要执行网格搜索.我有一个每个参数的可能值列表.对于每个可能的参数组合,我想运行我的函数,该函数报告我的算法在这些参数上的性能.我想将这个结果存储在一个多维矩阵中,以便后面我可以找到最大性能的索引,这反过来会给我最好的参数.以下是代码的编写方式:

param1_list = [p11, p12, p13,...]
param2_list = [p21, p22, p23,...] # not necessarily the same number of values
...

results_size = (len(param1_list), len(param2_list),...)
results = np.zeros(results_size, dtype = np.float)

for param1_idx in range(len(param1_list)):
  for param2_idx in range(len(param2_list)):
    ...
    param1 = param1_list[param1_idx]
    param2 = param2_list[param2_idx]
    ...
    results[param1_idx, param2_idx, ...] = my_func(param1, param2, ...)

max_index = np.argmax(results) # indices of best parameters!
Run Code Online (Sandbox Code Playgroud)

我想保留第一部分,我按原样定义列表,因为我希望能够轻松地操作我搜索的值.

我还希望最终得到结果矩阵,因为我将可视化更改不同参数如何影响算法的性能.

但是,中间的位是相当重复和笨重的(特别是因为我有很多参数,我可能想添加或删除参数),我觉得应该有一个更简洁/优雅的方式来初始化结果矩阵,迭代所有索引,并设置适当的参数.

那么,有吗?

python numpy

20
推荐指数
3
解决办法
2万
查看次数

标签 统计

python ×2

for-loop ×1

nested-loops ×1

numpy ×1