我有一个庞大的3D坐标矢量,我想对其进行归一化,以便它们位于尺寸为[0,1] x [0,1] x [0,1]的立方体内(即每个x,y,坐标的z应该在0到1之间),我正在做的事情是将所有坐标除以此向量中3D坐标的最大长度,但是这样我就无法处理负值的坐标。谁能建议将这些坐标标准化的正确方法是什么?
只需将每个分量除以向量的长度:
长度= sqrt(x ^ 2 + y ^ 2 + z ^ 2)
所以您的归一化向量是:
v =(x /长度,y /长度,z /长度)
import numpy as np
>>> v1 = np.array([[[-1,2,3], [4,5,6]]])
>>> v1
array([[[-1, 2, 3],
[ 4, 5, 6]]])
>>> v1.shape
(1, 2, 3)
>>> scaled_unit = 1.0 / (np.max(v1) - np.min(v1))
>>> (v1 * scaled_unit) + scaled_unit
array([[[0. , 0.42857143, 0.57142857],
[0.71428571, 0.85714286, 1. ]]])