РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
221 of 541 menu

Функция histogramdd

Функция histogramdd вычисляет многомерную гистограмму для массива точек в пространстве заданной размерности. Первым параметром функция принимает массив точек размерности (N, D), где N - количество точек, а D - количество измерений. Вторым параметром можно задать количество бинов по каждому измерению, а третьим - границы бинов.

Синтаксис

np.histogramdd(sample, bins=10, range=None, density=False, weights=None)

Пример

Рассмотрим базовый пример построения двумерной гистограммы для случайных точек:

import numpy as np rng = np.random.default_rng(0) sample = rng.random((100, 2)) hist, edges = np.histogramdd(sample, bins=3) print(hist) print(edges[0]) print(edges[1])

Результат выполнения кода:

[[[ 8. 9. 10.] [ 9. 4. 6.] [ 2. 2. 3.]] [[ 6. 7. 3.] [ 2. 4. 7.] [ 3. 3. 1.]] [[ 5. 2. 3.] [ 0. 3. 2.] [ 1. 1. 3.]]] [0. 0.33333333 0.66666667 1. ] [0. 0.33333333 0.66666667 1. ]

Пример

Построим гистограмму с разным количеством бинов по каждому измерению:

import numpy as np rng = np.random.default_rng(1) sample = rng.normal(size=(100, 2)) hist, edges = np.histogramdd(sample, bins=(5, 10)) print(hist.shape) print(hist.sum())

Результат выполнения кода:

(5, 10) 100.0

Пример

Рассмотрим использование параметра range для ограничения области построения гистограммы:

import numpy as np rng = np.random.default_rng(2) sample = rng.random((200, 3)) hist, edges = np.histogramdd( sample, bins=(4, 5, 3), range=[(0.2, 0.8), (0.1, 0.9), (0.3, 0.7)] ) print(hist.shape) print(hist[:, :, 0])

Результат выполнения кода:

(4, 5, 3) [[[ 2. 3. 2. 4.] [ 5. 4. 3. 3.] [ 2. 2. 3. 4.] [ 4. 2. 6. 6.] [ 4. 5. 3. 3.]] [[ 3. 4. 4. 5.] [ 4. 0. 3. 3.] [ 5. 5. 3. 4.] [ 1. 3. 4. 6.] [ 3. 6. 3. 4.]] [[ 2. 3. 0. 2.] [ 1. 2. 3. 2.] [ 3. 2. 4. 4.] [ 4. 3. 4. 3.] [ 5. 4. 4. 2.]] [[ 3. 4. 3. 6.] [ 3. 2. 1. 3.] [ 2. 4. 6. 6.] [ 2. 4. 4. 5.] [ 4. 2. 2. 3.]]]

Пример

Применим веса к точкам для построения взвешенной гистограммы:

import numpy as np rng = np.random.default_rng(3) sample = rng.random((50, 2)) weights = rng.integers(1, 5, size=50) hist, edges = np.histogramdd(sample, bins=3, weights=weights) print(hist) print(hist.sum()) print(weights.sum())

Результат выполнения кода:

[[[ 8. 19. 19.] [ 4. 6. 6.] [ 6. 12. 6.]] [[ 9. 6. 12.] [ 3. 7. 10.] [ 8. 8. 8.]] [[ 7. 9. 6.] [ 8. 12. 9.] [ 9. 4. 15.]]] 149.0 149

Пример

Используем параметр density для получения нормированной гистограммы:

import numpy as np rng = np.random.default_rng(4) sample = rng.random((1000, 2)) hist, edges = np.histogramdd(sample, bins=(5, 5), density=True) print(hist.sum() * np.prod(edges[0][1] - edges[0][0]))

Результат выполнения кода:

0.9999999999999998

Смотрите также

  • функцию histogram,
    которая вычисляет одномерную гистограмму
  • функцию histogram2d,
    которая вычисляет двумерную гистограмму
  • функцию bincount,
    которая подсчитывает частоту значений в одномерном массиве
  • функцию digitize,
    которая определяет индексы бинов для одномерных данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить