У меня есть 'n' ряд списков, которые я отправляю в процедуру построения. Вторым элементом в каждом списке являются частотные контрольные точки для использования при построении оси x. Мне нужно пройти каждую серию 'n' и выяснить, что является абсолютной точкой прерывания по самой низкой частоте, а wat является абсолютной точкой прерывания по самой высокой частоте для установления границы моей оси X на графике.
Каждый список состоит из произвольного количества списков: ['описание датчика', [контрольные точки частоты], [амплитуды в этих контрольных точках]]
т.е.: [['sensor_A', [0.1,1.0,10.0], [1.5,15.0,150.0]], ['sensor_B', [0,05,1.0,20.0], [0,5,15.0,300.0]]]
Я думал, что мог бы сделать это напрямую с numpy.amax и numpy.amin, но не нашел правильную комбинацию ... Должен ли я перебирать весь список по одному элементу за раз, или я могу использовать [ :] чтобы получить функции amax, amin для меня?
Не нашли лучшего решения, но, похоже, есть более быстрый путь.
pc = [['sensor_A',[0.05,1.0,10.0],[1.5,15.0,150.0]],['sensor_B',[0.2,1.0,20.0],[0.5,15.0,300.0]]]
# I want the nmax of the second list from each of the lists, which should be 20
# I want the nmin of the second list from each of the lists, which should be 0.05
print(np.amax(pc[1][1])) # unfortunately this only looks at the second list
print(np.amin(pc[1][1])) # and ignores the first.
max=0 # This works but seems kind of clunky. Is there a shorter solution?
min=1.0E+6
for p in pc:
if (np.amax(p[1]) > max):
max = np.amax(p[1])
if (np.amin(p[1]) < min):
min = np.amin(p[1])
print( min,max )