code: def _rotation_from_angles(r):
      R = np.array(
          [
              [1, 0, 0],
              [0, np.cos(r[0]), np.sin(r[0])],
              [0, -np.sin(r[0]), np.cos(r[0])],
          ]
      )
  
      R = np.dot(
          R,
          np.array(
              [
                  [np.cos(r[1]), 0, np.sin(r[1])],
                  [0, 1, 0],
                  [-np.sin(r[1]), 0, np.cos(r[1])],
              ]
          ),
      )
  
      R = np.dot(
          R,
          np.array(
              [
                  [np.cos(r[2]), np.sin(r[2]), 0],
                  [-np.sin(r[2]), np.cos(r[2]), 0],
                  [0, 0, 1],
              ]
          ),
      )
      R = np.linalg.inv(R)
      return R
  
imports: import numpy
  import random
  from dipy.core.geometry import sphere2cart, cart2sphere, nearest_pos_semi_def, sphere_distance, cart_distance, vector_cosine, lambert_equal_area_projection_polar, circumradius, vec2vec_rotmat, vector_norm, compose_transformations, compose_matrix, decompose_matrix, perpendicular_directions, dist_to_corner, is_hemispherical
  from numpy.testing import assert_array_equal, assert_array_almost_equal, assert_equal, assert_raises, assert_almost_equal
  from dipy.testing.spherepoints import sphere_points
  from dipy.testing.decorators import set_random_number_generator
  from dipy.core.sphere_stats import random_uniform_on_sphere
  from itertools import permutations
label_desc: Use image node_id 15 for calling a global function with example usage: _rotation_from_angles(r) and returns: R