猿问

使用 for 循环替换矩阵中的值,但只保留最后替换的值

x_n = np.arange(0, 1.0, 0.25)

u_m = np.arange(0, 1.0, 0.5)


for x in range(len(x_n)):

    for u in range(len(u_m)):

        zeros_array = np.zeros( (len(x_n), len(u_m)) )

        zeros_array[x,u] = x_n[x] - u_m[u]


zeros_array  


#result

array([[ 0.  ,  0.  ],

      [ 0.  ,  0.  ],

      [ 0.  ,  0.  ],

      [ 0.  ,  0.25]])

仅保留最后替换的值。我想知道如何保留所有替换的值。


慕田峪9158850
浏览 133回答 2
2回答

犯罪嫌疑人X

您在zeros_array循环的每次迭代中都初始化一个新的,所以当循环结束时,只保留最后一个值是直截了当的zeros_array,为了解决这个问题,您需要zeros_array在循环外定义一次并在内部不断更新它:x_n = np.arange(0, 1.0, 0.25)u_m = np.arange(0, 1.0, 0.5)zeros_array = np.zeros((len(x_n), len(u_m)))for x in range(len(x_n)):    for u in range(len(u_m)):        zeros_array[x, u] = x_n[x] - u_m[u]print(zeros_array)输出:[[ 0.   -0.5 ] [ 0.25 -0.25] [ 0.5   0.  ] [ 0.75  0.25]]

慕勒3428872

你在循环中初始化了 zeros_array 所以它在每个循环中都这样做做:zeros_array = np.zeros((len(x_n),len(u_m)))for x in range(len(x_n)):    for u in range(len(u_m)):        zeros_array[x,u] = x_n[x] - u_m[u]输出:array([[ 0.  , -0.5 ],       [ 0.25, -0.25],       [ 0.5 ,  0.  ],       [ 0.75,  0.25]])
随时随地看视频慕课网APP

相关分类

Python
我要回答