首页 > 解决方案 > Numpy 数组上的两个 for 循环

问题描述

早上好。假设我有一个用 numpy 创建的二维数组(称为 MAT(x,y))。在这个数组上,我必须执行一些操作。如何重写以下 2 个 for 循环,例如使用np.nditer()或其他使用 numpy 方法的东西?谢谢你。

    for i in range(x): 
        for j in range(y): 

            if i == 0: MAT[i][j] = j   
            elif j == 0: MAT[i][j] = i

标签: pythonarraysnumpy

解决方案


您可以像这样简单地设置第一行和第一列

mat[:,0] = np.arange(0, mat.shape[0])
mat[0,:] = np.arange(0, mat.shape[1])

示例结果

array([[0.        , 1.        , 2.        , 3.        , 4.        ],
       [1.        , 0.30487009, 0.97179858, 0.08143348, 0.99363866],
       [2.        , 0.69357714, 0.98421733, 0.42032313, 0.81041628]])

推荐阅读