У меня есть два массива (a и b) с n целыми элементами в диапазоне (0, N).
typo: массивы с 2 ^ n целыми числами, где наибольшее целое число принимает значение N = 3 ^ n
Я хочу рассчитать сумму каждой комбинации элементов в и b (sum_ij_ = a_i_ + b_j_ для всех i, j). Затем возьмем модуль N (sum_ij_ = sum_ij_% N) и, наконец, вычислим частоту различных сумм.
Чтобы сделать это быстро с numpy, без каких-либо циклов, я попытался использовать функцию meshgrid и bincount.
A,B = numpy.meshgrid(a,b)
A = A + B
A = A % N
A = numpy.reshape(A,A.size)
result = numpy.bincount(A)
Теперь проблема в том, что мои входные массивы длинны. И meshgrid дает мне MemoryError, когда я использую входы с 2 ^ 13 элементами. Я хотел бы рассчитать это для массивов с элементами 2 ^ 15-2 ^ 20.
то есть n в диапазоне от 15 до 20
Есть ли какие-нибудь умные трюки, чтобы сделать это с помощью numpy?
Любая помощь будет высоко оценена.
- джон