【发布时间】:2021-04-27 21:31:28
【问题描述】:
所以我有这个功能来找到矩阵中的最小值,并返回它在矩阵中的位置,即它的索引:
final_matrix=[[3.57 2.71 9.2 5.63]
[4.42 1.4 3.53 8.97]
[1.2 0.33 6.26 7.77]
[6.36 3.6 8.91 7.42]
[1.59 0.9 2.4 4.24]] # this changes in my code, im just giving a very simple version of it here
def lowest_values(final_matrix):
best_value=10000 #or any arbitrarily high number
for i in range(0,len(final_matrix[:,0])):
for j in range(0,len(final_matrix[0,:])):
if final_matrix[i,j]<best_value:
best_value=final_matrix[i,j]
lowest_val_i=i
lowest_val_j=j
return(lowest_val_i, lowest_val_j)
这返回我 (1,2),仅通过视觉分析是正确的。我现在想找到最低的 3 个值 - 希望能够构建到这个循环中。但我真的想不出怎么办!或者至少我不知道如何实现它。我在想一些 if-else 循环,如果已经找到最低值,那么“无效”这个值并找到第二个最低值,然后同样找到第三个值。但我不确定。
请不要太快结束这个问题 - 我对编程很陌生,而且非常卡住!
【问题讨论】:
-
final_matrix[0,:]无效。0,是一个元组。怎么回你(1, 2)? -
final_matrix实际上是一个二维 numpy 数组吗? -
从目前的 PO 来看,我怀疑他正在寻找 numpy 解决方案。不是纯 Python。
标签: python for-loop if-statement minimum