---
title: Quaternion (v2.4)
description: API reference for qiskit.quantum_info.Quaternion in qiskit v2.4
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.4/qiskit.quantum_info.Quaternion
---

# Quaternion

*class* `qiskit.quantum_info.Quaternion(data)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L21-L156)

Bases: [`object`](https://docs.python.org/3/library/functions.html#object)

A class representing a Quaternion.

## Methods

### from\_axis\_rotation

*classmethod* `from_axis_rotation(angle, axis)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L111-L136)

Return quaternion for rotation about given axis.

**Parameters**

- **angle** ([*float*](https://docs.python.org/3/library/functions.html#float)) – Angle in radians.
- **axis** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – Axis for rotation

**Returns**

Quaternion for axis rotation.

**Return type**

[Quaternion](#qiskit.quantum_info.Quaternion "qiskit.quantum_info.Quaternion")

**Raises**

[**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – Invalid input axis.

### from\_euler

*classmethod* `from_euler(angles, order='yzy')`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L138-L156)

Generate a quaternion from a set of Euler angles.

**Parameters**

- **angles** (*array\_like*) – Array of Euler angles.
- **order** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – Order of Euler rotations. ‘yzy’ is default.

**Returns**

Quaternion representation of Euler rotation.

**Return type**

[Quaternion](#qiskit.quantum_info.Quaternion "qiskit.quantum_info.Quaternion")

### norm

`norm()`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L48-L52)

Norm of quaternion.

### normalize

`normalize(inplace=False)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L54-L71)

Normalizes a Quaternion to unit length so that it represents a valid rotation.

**Parameters**

**inplace** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – Do an inplace normalization.

**Returns**

Normalized quaternion.

**Return type**

[Quaternion](#qiskit.quantum_info.Quaternion "qiskit.quantum_info.Quaternion")

### to\_matrix

`to_matrix()`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L73-L88)

Converts a unit-length quaternion to a rotation matrix.

**Returns**

Rotation matrix.

**Return type**

ndarray

### to\_zyz

`to_zyz()`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.4/qiskit/quantum_info/quaternion.py#L90-L109)

Converts a unit-length quaternion to a sequence of ZYZ Euler angles.

**Returns**

Array of Euler angles.

**Return type**

ndarray
