Вычисление дисперсии трехмерного пикселя из массива 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)