【发布时间】:2018-12-28 02:34:06
【问题描述】:
我正在尝试使用 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 as 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)
但是数组得到了相同的距离值(我认为这是我分配值的方式):
[['abc', 2], ['def', 2], ['ghi', 2], ['jkl', 2], ['mno', 2], ['pqr', 2], ['stu', 2]
【问题讨论】:
-
能否提供功能代码?您没有准确说明
calculate_number做了什么。 -
我已更新代码以分配 0 到 9 之间的随机数。谢谢
-
当您说:“如何获取具有最小数字的字符串(或数字,如果有多个)。”你是说数组可能看起来像 [['string1', 1], ['string2', 2], ['string3', 3, 4, 0]] (在这种情况下,正确的字符串想要的是'string3')?
-
是的@lampShadesDrifter 有可能它看起来像这样:
[['abc', 2], ['def', 2], ['ghi', 2]]
标签: python arrays sorting numpy multidimensional-array