Prerequisite
将一个列表中的点或者其他对象转换成一个numpy.ndarray对象
points = np.asarray([[1,2,3],[3,4,5],[6,7,8]])
|
查看numpy.ndarray的形状
计算点到原点的欧几里得距离
distances = np.linalg.norm(points, axis=1)
|
np.linalg.norm(x, ord=None, axis=None, keepdims=False)
求范数
x:是输入的矩阵or向量
ord:计算的范数类型。ord=2计算L2范数,即欧几里得距离,ord=1计算L1范数。
axis:轴,axis=0按列计算,axis=1按行计算
选择欧几里得距离符合一定范围内的点
np.where((distances >= 0.01) & (distances <= 70))[0]
points[np.where((distances >= 0.01) & (distances <= 70))]
|
https://www.delftstack.com/zh/howto/numpy/python-numpy.where-multiple-conditions/#%e5%9c%a8-python-%e4%b8%ad%e4%bd%bf%e7%94%a8-numpylogical_or-%e5%87%bd%e6%95%b0%e5%ae%9e%e7%8e%b0-numpywhere-%e5%a4%9a%e4%b8%aa%e6%9d%a1%e4%bb%b6
对点进行旋转
np.dot(points, rotation_matrix.T)
|
注意这里需要对旋转矩阵做了转置,推导一下。
np.dot矩阵乘法,他的用法是?和np.matmul
的区别?
对点进行平移
points + translation_vector
|