四维数组的标准化/预处理

时间:2015-04-02 16:37:14

标签: python standardized

我想将我的数据标准化为零均值和std = 1.我的数据形状为28783x4x24x7,它可以被认为是28783个图像,4个通道,尺寸为24x7。渠道需要标准化。如何在指定第二维保存特征时进行标准化?

1 个答案:

答案 0 :(得分:0)

我找到了办法。它可能不是最有效的,但它也允许我使用这种方法进行交叉验证,我只想从训练数据中获得均值和标准,但是将操作应用于训练和测试数据。如果您只想要一个维度的平均值,则可以在任意数量的维度上使用它。请参阅下面的示例代码:

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,:])