#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)))