Отображение минимального и максимального диапазона ячеек при сохранении гистограммы NumPy через savetxt

#python #python-3.x #numpy #histogram

#python #python-3.x #numpy #гистограмма

Вопрос:

Я успешно построил базовую гистограмму с помощью NumPy, и я могу сохранить ее с помощью savetxt .

Однако я не смог выяснить, как либо изменить саму гистограмму, либо savetxt вывести диапазон ячеек.

Вместо того, чтобы вывод выглядел следующим образом:

 0.00 534
16.67 504
33.33 515
50.00 534
66.67 566
83.33 574
  

Я ищу это:

 0.00 16.66 534
16.67 33.32 504
33.33 49.99 515
50.00 66.66 534
66.67 83.32 566
83.33 (max?) 574
  

Код:

 a = np.array(temperature_list)
freqs, bins = np.histogram(a, bins=5)
h = np.array(list(zip(bins,freqs)))
np.savetxt(
        fname=tsv_file,
        X=h,
        fmt='%1.2f %d',
        delimiter='t')
  

https://docs.scipy.org/doc/numpy-1.16.0/reference/generated/numpy.savetxt.html ?выделить = savetxt#numpy.savetxt кажется довольно простым, поэтому я предполагаю, что мне нужно каким-то образом предоставить это как другой массив при создании гистограммы? Возможно, предварительно сформируйте какое-либо представление списка в качестве другого элемента, в который я создаю h ?

Комментарии:

1. Вы могли бы изменить fmt формат строки на три числа и совместно сохранить ячейки и частоты. Что-то вроде combined = [ (b[i], b[i 1], f[i]) for i in range(len(f))] .

Ответ №1:

Посмотрите на свой bins , информация уже там; bins на один элемент длиннее, чем freqs , но вы удаляете последнюю границу ячейки с помощью zip , которая выполняет итерации только по наименьшей общей длине своих итераций.

Попробуйте, например

 h = np.array(list(zip(bins[:-1], bins[1:], freqs)))