我有一个3维的numpy数组,它是一个8x8图像的补丁网格。
从每个补丁中减去它的平均值的最佳方法是什么,换句话说,每个补丁都有一个独特的均值,我想减去它。我尝试了以下但没有成功,因为两个数组的形状不相同
patches=- patches.mean(axis = 2).mean(axis = 1)
我想过使用重复功能,比如:
patches=- np.repeat(np.repeat(patches.mean(axis =2).mean(axis =1).reshape((n_patches, 8, 8)), 1, 1))
我认为遵循这条路线会导致效率低下的解决方案。有什么想法或解决方案吗?
答案 0 :(得分:3)
import numpy as np
a = np.random.rand(10,8,8)
mean = a.mean(axis=2).mean(axis=1)
b = a - mean[:, np.newaxis, np.newaxis] # reshape the mean as (10, 1, 1)
答案 1 :(得分:1)