Может ли кто-нибудь просто объяснить синтаксис, связанный с суммированием по осям в сетке Numpy для уменьшения размерносPython

Программы на Python
Ответить
Anonymous
 Может ли кто-нибудь просто объяснить синтаксис, связанный с суммированием по осям в сетке Numpy для уменьшения размернос

Сообщение Anonymous »

Я хочу создать функцию, которая работает с пятью одномерными массивами и возвращает пятимерный массив. Затем я хочу «суммировать» три оси функции, чтобы свести ее к двумерному массиву, который затем отображается на pcolormesh по двум осям, по которым не было суммировано. Мне казалось, что я понял, как это сделать, но, видимо, я что-то упускаю и не нашел хорошего объяснения того, в чем ошибаюсь.
Вот краткое описание того, что я пробовал:

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(-10, 10)
b = np.linspace(-10, 10)
c = np.linspace(-10, 10)
d = np.linspace(-5, 5)
e = np.linspace(-7, 7)

A, B, C = np.meshgrid(a,b,c)

D, E = np.meshgrid(d, e)

def f(a,b,c,d,e):
return a**2  + b**3 + c**6 + d + 2*e**3

F = np.sum(f(A, B, C, D, E), axis = 0)
G = np.sum(F, axis = (2,3))

plt.pcolormesh(B, C, G)
plt.show()
Насколько я понимаю, строка F = np.sum(f(A, B, C, D, E), axis = 0) будет суммировать функцию по всем значениям a в соответствующем линейном пространстве и, следовательно, вернет f, оцененную по оставшимся 4 осям B, C, D, E, а затем впоследствии строка G = np.sum(K, axis = 2,3) будет суммировать D,E, чтобы вернуть двумерный массив f, оцененный по осям B, C и суммированный по остальным (в минимальном примере здесь я мог бы сложить строки для создания F и G вместе, но в моем реальном коде общий массив слишком велик для памяти, поэтому я разделяю его).
Может кто-нибудь объяснить мне простыми словами, что происходит не так, и правильный синтаксис для создания желаемого результат?

Подробнее здесь: https://stackoverflow.com/questions/787 ... in-a-numpy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»