如何根据另一列的条件在3D数组中查找列的最大值?

时间:2019-05-14 14:35:37

标签: python python-3.x numpy max

我有一个包含3列的数组,需要找到第一列的最大值,而第三列小于某个预定义值。

输入,例如:

a = [[1 2 1],[2 3 3],[7 10 5],[5 1 2],[2 3 4]]

所需的输出

max(a [:,0],其中a [:,2] <5)= [5 1 2]

如何执行此操作?最好尽快。

2 个答案:

答案 0 :(得分:1)

您可以使用np.argmax

subset = a[a[:, 2] < 5]
result = subset[subset[:, 0].argmax()]

print(result)

输出:

[5 1 2]

这将根据给定条件获取原始数组的子集,使用切片和argmax在第一列中找到具有最高值的行的索引,然后使用该值对子集进行索引。 / p>

答案 1 :(得分:0)

您可以使用i = row_value c = column_name rangex = [] for df in [df1, df2, ... df10]: val = df.loc[i,c] rangex.append(val) for elem in rangex: val = (elem - np.mean(rangex))/np.std(rangex) val = (((val - (-3.0)) * NewRange) / OldRange) + 0.0 listrangex.append( val )

argmax