我希望将数组‘x’中的列元素归一化为-1或1,该数组包含正数和负数。
x的负元素应归一化为每列的x.min,其中x.min变为-1,x的正元素应归一化为每列的x.max,其中x.max变为1。零值应保持为零。
我可以使用以下方法完成部分操作:
x = np.array([[ 1, 3, 1 ],
[-2, -5, -0.5],
[-3, -1, 1.5],
[ 2, 7, 2 ]])
x_norm = x / x.max(axis=0)
print(x_norm)
[[ 0.5 0.42857143 0.5 ]
[-1. -0.71428571 -0.25 ]
[-1.5 -0.14285714 0.75 ]
[ 1. 1. 1. ]]
但实际上我希望结果是这样的:
print(x_norm)
[[ 0.5 0.42857143 0.5 ]
[-0.66 -1. -1. ]
[-1. -0.2 0.75 ]
[ 1. 1. 1. ]]