我有一个包含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]
如何执行此操作?最好尽快。
答案 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