code: def array_from_nested_dictionary(
          nested_dict,
          array_fn,
          dtype="float32",
          square_result=False):
      
      if square_result:
          outer_key_indices = inner_key_indices = flattened_nested_key_indices(
              nested_dict)
      else:
          outer_key_indices, inner_key_indices = nested_key_indices(
              nested_dict)
  
      n_rows = len(outer_key_indices)
      n_cols = len(inner_key_indices)
      shape = (n_rows, n_cols)
      result = array_fn(shape, dtype)
      for outer_key, sub_dictionary in nested_dict.items():
          i = outer_key_indices[outer_key]
          for inner_key, value in sub_dictionary.items():
              j = inner_key_indices[inner_key]
              result[i, j] = value
      outer_key_list = index_dict_to_sorted_list(outer_key_indices)
      inner_key_list = index_dict_to_sorted_list(inner_key_indices)
      return result, outer_key_list, inner_key_list
docs: Parameters
      ----------
      nested_dict : dict
          Dictionary which contains dictionaries
  
      array_fn : function
          Takes shape and dtype as arguments, returns empty array.
  
      dtype : dtype
          NumPy dtype of result array
  
      square_result : bool
          Combine keys from outer and inner dictionaries.
  
      Returns array and sorted lists of the outer and inner keys.