Более простой способ превратить массив в распределение? - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть массив vox_betas, который содержит 21600 чисел с плавающей запятой (в диапазоне от ~ 0 до ~ 2), и при сортировке по массиву, функциям, вы можете видеть, что существует структура данных (см. 1-й pi * 1026) *).

Я хочу иметь один массив, который отражает эту структуру - по сути, я хочу вызвать sns.distplot () и получить тот же график, что и первое изображение. Прямо сейчас sns.distplot (vox_betas) отображает 2-е изображение, а это не то, что я хочу.

Мне удалось выполнить sh на третьем изображении, создав массив dist, но так, как я Выполнено это было небрежно и даже теряет некоторую информацию (мой код ниже).

Как бы вы преобразовали vox_betas и функции в dist? У кого-нибудь есть идеи?

plt.scatter(features,vox_betas)

enter image description here

sns.distplot(vox_betas)

enter image description here

dist=[]
for f in np.unique(features):
    dist = np.concatenate((dist,
                np.repeat(f,
                np.sum(
                [vox_betas[j]*10 for j in np.where(features==f)[0]]))))

sns.distplot(dist)

enter image description here

1 Ответ

0 голосов
/ 01 февраля 2020

Это называется выборка с обратным преобразованием :

- это базовый c метод для выборки псевдослучайных чисел, т. Е. Для генерации выборки числа случайным образом из любого распределения вероятностей с учетом его кумулятивной функции распределения .

Лучшее объяснение, которое я нашел, это это . Также обсуждается здесь .

...