我想把我的数据标准化为零均值和std = 1。我的数据的形状是28783x4x24x7,它可以想象成28783张图像,有4个通道,尺寸为24x7。渠道需要标准化。我如何标准化,同时指定第二维度拥有这些特征?
发布于 2015-04-04 14:00:27
我找到了办法。这也许不是最有效的方法,但它也允许我使用这种方法进行交叉验证,在这种情况下,我只想从我的培训数据中获取平均值和std值,但是将该操作应用于培训和测试数据。这可以用于任意数量的维度,如果您只想要一个维度的平均值。参见下面的示例代码:
n_user = 3
n_channel = 2
n_pixels = 3
A = np.zeros(shape=(n_user, n_channel, n_pixels))
for i in range(n_user):
A[i, 0, :] = np.arange(n_pixels)
A[i, 1, :] = np.arange(n_pixels) + n_pixels
print A
mu_f = np.zeros(shape=n_channel)
sigma_f = np.zeros(shape=n_channel)
for i in range(n_channel):
mu_f[i] = np.mean(A[:,i,:])
sigma_f[i] = np.std(A[:,i,:])
print mu_f
print sigma_f
for i in range(n_channel):
A[:, i, :] -= mu_f[i]
A[:, i, :] /= sigma_f[i]
print A
print np.mean(A[:,0,:])
print np.std(A[:,0,:])https://stackoverflow.com/questions/29418031
复制相似问题