Python 在具有字符串和数字的二维数组中查找最小数

Python 在具有字符串和数字的二维数组中查找最小数,python,arrays,sorting,numpy,multidimensional-array,Python,Arrays,Sorting,Numpy,Multidimensional Array,我正在尝试使用Python查找分配给二维数组中字符串的最小数目。我在尝试构建阵列时遇到了一些问题,因此我当前的解决方案如下所示: from random import randint import numpy as np array=['abc', 'def', 'ghi'] col = 2 row = len(array) new_array= [[0] * col for _ in range(row)] i = 0 j = 0 for i in range(0, row): fo

我正在尝试使用Python查找分配给二维数组中字符串的最小数目。我在尝试构建阵列时遇到了一些问题,因此我当前的解决方案如下所示:

from random import randint
import numpy as np

array=['abc', 'def', 'ghi']
col = 2
row = len(array)
new_array= [[0] * col for _ in range(row)]
i = 0
j = 0
for i in range(0, row):
    for j in range(0, col):
        new_value = randint(0, 9)
        new_array[i][j] = array[i]
        new_array[i][1] = new_value
print(array)
print(new_array)
array[]
如下所示:
['abc','def','ghi']

new_array[][]
在循环结束时如下所示:
[['abc',1],'def',2],'ghi',3]]

我需要知道的是数字较小的字符串。 我已经尝试过导入
import numpy作为np
并使用
print(new_array.min())

我已经更新了我的代码。到目前为止,不再使用随机生成器: 我正在使用一个函数来计算Levenshtein距离

while j < len(T) 
    new_array= [[s, levenshtein_distance(T[j], input)] for s in T]
    if np.argmin(np.asarray(disT)[:,1]) > 
        levenshtein_distance(T[j], input):
        print('Minimum was already found in', new_array)

您的
新_数组
可以使用列表理解的一行代码生成:

new_array = [ [ s, randint(0, 9) ] for s in array ]
正确的函数不是返回列表最小值的
np.min
,而是返回其索引(即位置)的
np.argmin

知道最小值的位置后,可以检索关联的字符串:

print(new_array[idx][0])

你能提供一个功能代码吗?您没有精确计算出
计算\u number
的功能。我已更新代码以分配0到9之间的随机数。谢谢当你说:“如何获得最小数字的字符串(或者如果有多个数字的话)。”你是说数组可能看起来像[['string1',1],'string2',2],'string3',3,4,0](在这种情况下,你想要的正确字符串是'string3')是的@lampshadesdriver有可能是这样的:
[[abc',2],“def',2],“ghi',2]]
idx = np.argmin(np.asarray(new_array)[:,1])
print(new_array[idx][0])