减去列表中数组中的最小值

时间:2013-10-18 14:19:57

标签: list python-2.7 subtraction

假设我有一个列表

x = [[1,2,3],[5,4,20],[9,100,7]]

我想要类似的东西:

xcor = x - min(x) #should return [[0,1,2],[1,0,16],[2,93,0]]

3 个答案:

答案 0 :(得分:1)

[[y-m for y in q] for (q,m) in [[q,min(q)] for q in x]]

答案 1 :(得分:0)

好好试试你说的话。

首先找到最小值,然后编辑现有列表或创建新数组。

至少这样的事情:

def min_value(x):
    min = x[0]
    for i in range(len(x)):
        if x[i] < min:
            min = cell
    return min

和这个

def subtract_min_from_each_list(x):
    for i in range(len(x)):
        min = min_value(x[i])
        for j in range(len(x[i])):
            x[i][j] = x[i][j] - min
    return x

或者

def get_subtracted_list(x):
    new_x = []
    for i in range(len(x)):
        temp = []
        min = min_value(x[i])
        for j in range(len(x[i])):
            temp.append(x[i][j] - min)
        new_x.append(temp)
    return new_x

在你的名单上行动。

答案 2 :(得分:0)

你可以在python

中试试
x = [[1,2,3], [5,4,20], [9,100,7]]

for n in range(len(x)):
    pivot = x[n][n]
    for m in range(len(x[0])):
        x[n][m] = x[n][m] - pivot

print x