我要做的只是为数组中最高的数字找到并定义一个x和y坐标。
例如,50000将输出:x=2,y=2。有什么简单的方法可以实现这一点吗?
我创建了以下代码:
data_array = [[0, 1, 2, 3, 50000],
[5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]]
highest_num = data_array[0][0]
x = 0
y = 0
# looping from 0 to len(data_array)-1
for i in range(len(data_array)):
# looping from 0 to len(data_array[i])-1
for j in range(len(data_array[i])):
# checking data_array[x][y] is less than data_array[i][j]
if data_array[x][y] < data_array[i][j]:
# updating x and y
x = i
y = j
highest_num = data_array[i][j]
# printing the values of highest_num, x and y
print("highest_num =", highest_num)
print("x =", x)
print("y =", y)
但我会得到x=0,y=4,我想引用数组的中间部分,即12,并使输出为x=2,y=2。
在没有 numpy 情况下,这能做到吗?不管它在哪里,我都要用最大值来跟踪点数。
2条答案
按热度按时间fcg9iug31#
修改程序中的2行:
wnrlj8wa2#
如果您可以使用NumPy这样做argmax,然后找到坐标(行COL),并将坐标切换到Chartersian(反转y),然后两者都减去一半,(考虑到它在两个维度上都是偶数。
如果不是,只需使用您编写的代码来查找最大索引。