Вычисление дисперсии трехмерного пикселя из массива 4D

Пусть будет некоторый 4D массив [x,y,z,k], состоящий из k трехмерных изображений [x,y,z]. Есть ли способ рассчитать дисперсию каждого отдельного пикселя в 3D из массива 4D?

Например, у меня есть массив 10x10x10x5 и я хотел бы вернуть массив отклонений 10x10x10; дисперсия рассчитывается для каждого пикселя (или вокселя, на самом деле) вдоль k

Если это не имеет смысла, дайте мне знать, и я постараюсь объяснить лучше.

В настоящее время мой код:

tensors = []
while error > threshold:
    for _ in range(5): #arbitrary
        new_tensor = foo(bar) #always returns array of same size
        tensors.append(new_tensor)

tensors = np.stack(tensors, axis = 3)
#tensors.shape

И я хотел бы рассчитать массив дисперсий для тензоров

1 ответ

Решение

Есть простой способ сделать это, если вы используете numpy:

variance = tensors.var(axis=3)
Другие вопросы по тегам