Как найти, какие точки l ie в каждом бине гистограммы? - PullRequest
0 голосов
/ 16 января 2020

У меня есть двумерная гистограмма с размером ячейки 10. Чтобы узнать, есть ли функция numpy (или более быстрый метод) для получения точек l ie в каждой ячейке в сетке 2d. , Есть ли способ получить доступ к элементам корзины?

1 Ответ

0 голосов
/ 16 января 2020

Я надеюсь, что это решит вашу проблему. Однако я считаю, что другие могут улучшить мой код, потому что я новичок в python.

Создание гистограммы с помощью matplotlib

import matplotlib.pyplot as plt
rng = np.random.RandomState(10)  # deterministic random data
a = np.hstack((rng.normal(size=100), rng.normal(loc=5, scale=2, size=1000)))
n ,bins ,patches  = plt.hist(a, bins=10)  # arguments are passed to np.histogram
plt.title("Histogram with '10' bins")

plt.show()

Изменение формы массивов и ..

newbin =  np.repeat(np.reshape(bins,(-1, len(bins))), a.shape, axis=0)
newa = np.repeat(np.reshape(a,(len(a),-1)),len(bins),axis=1)
#index_bin = (np.where(newbin[:,0] >np.reshape(a,(1,-1))[:,0] )  )[0][0]

index_bin = (newbin>newa).argmax(axis=1).T

test

print(a[0] ,    bins)
print(index_bin[0])

Выход

1.331586504129518 [-2.13171211 -0.88255884  0.36659444  1.61574771  2.86490098  4.11405425
  5.36320753  6.6123608   7.86151407  9.11066734 10.35982062]
3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...