Can you use pandas? If so,
import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([["A", 25, 2], ["B", 25, 3], ["C", 10, 1], ["D", 50, 25]]))
df[1] = pd.to_numeric(df[1])
df[2] = pd.to_numeric(df[2])
df[3] = df[1] / df[2]
sorted_list = df.sort_values(by=3, ascending=False).values[:,:3]
print(sorted_list)
array([['A', 25, 2],
['C', 10, 1],
['B', 25, 3],
['D', 50, 25]], dtype=object)
Note that here I'm assuming (based on how I understood the question) that you want to sort based on the value of the 2nd column divided by the 3rd column. If that's the case, the output example has the first two elements flipped (since 25/2 > 10/1).
list(or "reserved words" in general) as variable namenumpy.array, all elements are of the same type, string in this case. Are you surenumpy.arrayis what you want/need in this case?