code: def convert_data_to_dtype(data, data_type, mot_float_type='float'):
      
      scalar_dtype = ctype_to_dtype(data_type, mot_float_type)
  
      if isinstance(data, numbers.Number):
          data = scalar_dtype(data)
  
      if is_vector_ctype(data_type):
          shape = data.shape
          dtype = ctype_to_dtype(data_type, mot_float_type)
          ve = np.zeros(shape[:-1], dtype=dtype)
  
          if len(shape) == 1:
              for vector_ind in range(shape[0]):
                  ve[0][vector_ind] = data[vector_ind]
          elif len(shape) == 2:
              for i in range(data.shape[0]):
                  for vector_ind in range(data.shape[1]):
                      ve[i][vector_ind] = data[i, vector_ind]
          elif len(shape) == 3:
              for i in range(data.shape[0]):
                  for j in range(data.shape[1]):
                      for vector_ind in range(data.shape[2]):
                          ve[i, j][vector_ind] = data[i, j, vector_ind]
  
          return np.require(ve, requirements=['C', 'A', 'O'])
      return np.require(data, scalar_dtype, ['C', 'A', 'O'])
docs: Convert the given input data to the correct numpy type.
  
      Args:
          data (ndarray): The value to convert to the correct numpy type
          data_type (str): the data type we need to convert the data to
          mot_float_type (str): the data type of the current ``mot_float_type``
  
      Returns:
          ndarray: the input data but then converted to the desired numpy data type