Обратная сумма для многомерного массива в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обратная сумма для многомерного массива в Python

Сообщение Anonymous »

Я хотел бы знать, как выполнить обратную операцию накопленной суммы для многомерного массива в Python.
Например, мы можем получить накопительный массив P заданного двумерного массива T на
import numpy as np
T = np.array([[1,3,2],[5,5,6],[1,8,3]])
P = np.cumsum(np.cumsum(T, axis=0), axis=1)
print(P)
# P is then,
# [[1, 4, 6],
# [6,14,22],
# [7,23,34]]

Мой вопрос: как мне получить T из P? Я хочу восстановить T из P.
Вышеупомянутый случай представляет собой двумерный случай, но мне нужна реализация, в которой T и P< /code> может иметь любое измерение.
Ответ для Джулии предоставляется:
Обратная сумма в Джулии
Тем не менее, я ищу ответ для Python.
РЕДАКТИРОВАТЬ
Спасибо за хорошие ответы. Я сравнил два предложенных метода с точки зрения вычислительных затрат. Судя по всему, оба метода достаточно эффективны.
T = np.random.randint(100, size=[100,50,25,50])
%timeit cumdiff(T)
#319 ms ± 134 μs per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit decumsum(T)
#324 ms ± 943 μs per loop (mean ± std. dev. of 7 runs, 1 loop each)


Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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