code: def rotation(theta, phi):
      """Returns a rotation 3x3 matrix."""
      cos = np.cos
      sin = np.sin
      a1 = np.array(
          [
              [cos(theta), -sin(theta), 0],
              [sin(theta), cos(theta), 0],
              [0, 0, 1],
          ]
      )
      a2 = np.array(
          [[1, 0, 0], [0, cos(phi), -sin(phi)], [0, sin(phi), cos(phi)]]
      )
      return np.dot(a1, a2)
  
imports: import copy
  import math
  import os
  from pathlib import Path
  import numpy
  import pytest
  from nibabel import Nifti1Header, Nifti1Image
  from nibabel.freesurfer import MGHImage
  from numpy.testing import assert_allclose, assert_almost_equal, assert_array_almost_equal, assert_array_equal, assert_equal
  from nilearn import _utils
  from nilearn._utils import testing
  from nilearn.conftest import _affine_eye, _rng
  from nilearn.image import get_data
  from nilearn.image.image import _pad_array, crop_img
  from nilearn.image.resampling import BoundingBoxError, coord_transform, from_matrix_vector, get_bounds, reorder_img, resample_img, resample_to_img
label_desc: Use image node_id 2 for calling a global function with example usage: rotation(theta, phi) and returns: np