Есть ли эффективный способ перебазировать большой массив в Python?

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

import numpy as np
frequency_standard = np.array([1, 3, 5, 7])

У меня есть гигантская коллекция частотных отсчетов и соответствующих количественных отсчетов в разных двухмерных местах. пример цели:

frequency_of_samples = np.array([[1, 2, 3, 4],[1.4,3.5, 4.6, 5.8],
                                 [2, 3.5, 5.6, 6.8]])
data_of_samples = np.array([[10, 14, 52, 12], [12, 32, 53, 21], 
                            [23, 54, 26, 13]])

Теперь я хотел бы ребин data_of_samples в frequency_standard, вместо frequency_of_samples, Я хотел бы иметь быстрый метод numpy, который достиг бы этого. Мое начало следующее: сначала найдите индекс frequency_of_samples в frequency_standard:

bin_index = np.digitize(frequency_of_samples, frequency_standard)

На данный момент мне нужно иметь чистый массив для выгрузки числа:

binned_data = np.zeros(data_of_samples.shape)

И кумулятивно добавить число из data_of_samples в bin_index в binned_data, Эта часть не работает, и следующий код не имеет никакого смысла, но я хотел бы иметь что-то вроде этого:

binned_data[bin_index] += data_of_samples[bin_index]

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

0 ответов

Другие вопросы по тегам