Skip to main content
 首页 » 编程设计

使用for arange循环时的python数组索引

2025年05月04日10傻小

我有一个问题。我目前正在从 matlab 转向 python,虽然我发现它很容易适应 numpy 和 scipy,但有些部分仍然有点神秘;)

我想做的是在两个嵌套循环中计算数据并将其放入(整形)到一个 (m,n) 数组中以制作等高线图。

于是我想到了以下几点:

for i in arange(1, 10, 1): 
    for k in arange(5, 50, 5): 
        res = do_something(i, k) 

但现在我不完全确定我应该如何把它变成正确的形状(在 Matlab 中我只是用 i=1:1:10 索引循环等等,然后从向量中提取 i 的实际值...)。

我可以附加结果 res.append(res) 并用 res.reshape((m,n)) reshape 它。但是可能有更优雅的方法吗?

非常欢迎任何帮助!

最美好的祝愿, 克里斯

请您参考如下方法:

这是一种不需要显式索引来存储值的可能解决方案

result = [[my_function(x, y) 
           for x in arange(0.3, 10.7, 2.2)] 
          for y in arange(-3.2, 5.4, 0.7)] 

对于需要显式索引的情况,使用 enumerate(arange(...)) 既紧凑又可读。

不过,我不确定这是使用 numpy 构建大型矩阵的最有效方法(如果您需要一些速度,那么您应该将函数分解为多个简单操作,每个操作都使用 numpy 显式执行)。