scipy.spatial.transform.Rotation.
approx_equal#
- Rotation.approx_equal(other, atol=None, degrees=False)[source]#
确定另一个旋转是否近似等于此旋转。
相等性是通过计算旋转之间的最小角度来测量的,并检查它是否小于 atol。
- 参数:
- other
Rotation实例 包含要与此旋转进行测量对比的旋转的对象。
- atolfloat, 可选
绝对角度容差,低于该值时,旋转被认为相等。如果未提供,则默认设置为 1e-8 弧度。
- degreesbool, optional
如果为 True 且提供了 atol,则 atol 以度为单位测量。如果为 False(默认),则 atol 以弧度为单位测量。
- other
- 返回:
- approx_equalndarray 或 bool
旋转是否近似相等,如果对象包含单个旋转则为 bool,如果对象包含多个旋转则为 ndarray。
附注
数组 API 标准支持
approx_equal对 Python Array API 标准兼容的后端具有实验性支持,除了 NumPy 之外。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)的组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
⛔
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
示例
>>> from scipy.spatial.transform import Rotation as R >>> import numpy as np >>> p = R.from_quat([0, 0, 0, 1]) >>> q = R.from_quat(np.eye(4)) >>> p.approx_equal(q) array([False, False, False, True])
单个旋转的近似相等性
>>> p.approx_equal(q[0]) False