Nano Hash - криптовалюты, майнинг, программирование

Как построить гистограмму с осью y как суммой значений y, соответствующих каждой ячейке x и оси x как n ячейкам x в python?

Скажем, у меня есть два массива:

x=np.random.uniform(0,10,100)
y=np.random.uniform(0,1,100)

Я хочу сделать n ящиков между xmin = 0 и xmax = 10. Каждому y соответствует x, который принадлежит одному из этих n интервалов. Скажем, значение, соответствующее каждой ячейке, изначально равно нулю. Что я хочу сделать, так это добавить каждое значение y к соответствующему интервалу x и построить гистограмму с осью x от xmin до xmax с n интервалами и осью y как сумму всех значений y, добавленных в соответствующие интервалы x. Как это сделать в Python?


Ответы:


1

Прежде всего, я думаю, что проще использовать гистограмму вместо гистограммы.

import matplotlib.pyplot as plt
import numpy as np

xmax = 6600
xmin = 6400
x = np.random.uniform(xmin, xmax, 10000)
y = np.random.uniform(0, 1, 10000)
number_of_bins = 100

bins = [xmin]
step = (xmax - xmin)/number_of_bins
print("step = ", step)
for i in range(1, number_of_bins+1):
    bins.append(xmin + step*i)
print("bins = ", bins)

# time to create the sums for each bin
sums = [0] * number_of_bins

for i in range(len(x)):
    sums[int((x[i]-xmin)/step)] += y[i]
print(sums)

xbar = []
for i in range(number_of_bins):
 xbar.append(step/2 + xmin + step*i)
# now i have to create the x axis values for the barplot
plt.bar(xbar, sums, label="Bars")
plt.xlabel("X axis label")
plt.ylabel("Y axis label")
plt.legend()
plt.show()

Вот новый результат

Если вы чего-то не понимаете, пожалуйста, скажите мне, чтобы я это объяснил

28.01.2020
  • Спасибо за предложение о графике бара. Но это не сработает, скажем, xmax = 6600 xmin = 6400 x = np.random.uniform(xmin,xmax, 1000) y = np.random.uniform(0, 1, 1000) number_of_bins = 100 Очевидно, что bins.append(step*i) нужно изменить на bins.append(xmin+step*i). sums[int(x[i]/step)] += y[i] создает проблему. Логика int(x[i]/step) не для общего случая. 29.01.2020
  • @KJay, ты прав, я вижу проблему. Могу я спросить вас еще об одном ... Когда вы задаете значение x следующим образом: x = np.random.uniform (0,10,100), значения 0 и 10 представляют xmin и xmax? 29.01.2020
  • да. Это то, что я имел в виду. Извините, если это не было очевидно. 29.01.2020
  • @KJay, я внес небольшие изменения. Думаю, сейчас работает как надо. Скажите, если я что-то упускаю ... 29.01.2020
  • Это. Спасибо! 30.01.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..