1

在 numpy 中,原始数组的形状是这样的(2,2,2)

[[[0.2,0.3],[0.1,0.5]],[[0.1,0.3],[0.1,0.4]]]

我想缩放数组,使 a 维度的最大值为 1,如下所示:

由于 max([0.2,0.1,0.1,0.1]) 是 0.2,而 1/0.2 是 5,所以对于 int 元组的第一个元素,将其乘以 5。

由于 max([0.3,0.5,0.3,0.4]) 为 0.5,而 1/0.5 为 2,因此对于 int 元组的第二个元素,将其乘以 2

所以最终的数组是这样的:

[[[1,0.6],[0.5,1]],[[0.5,0.6],[0.5,0.8]]]

我知道如何在 numpy 中将数组与整数相乘,但我不确定如何将数组与不同的因子相乘。有人对此有想法吗?

4

1 回答 1

4

如果您的数组 = a

>>> import numpy as np
>>> a = np.array([[[0.2,0.3],[0.1,0.5]],[[0.1,0.3],[0.1,0.4]]])

你可以这样做:

>>> a/np.amax(a.reshape(4,2),axis=0)
array([[[ 1. ,  0.6],
        [ 0.5,  1. ]],

       [[ 0.5,  0.6],
        [ 0.5,  0.8]]])
于 2013-06-25T08:49:17.920 回答