code: def _compute_normalization(df: DataFrame, num_cols: List) -> Tuple:
      df_mean = {c: np.nanmean(df[c], dtype=float) for c in num_cols}
      df_std = {c: np.nanstd(df[c], dtype=float) for c in num_cols}
      zero_std = [c for c in num_cols if df_std[c] == 0]
      if zero_std:
          logging.warning(
              f"Following numerical columns {zero_std} have zero STD which may lead to NaN in normalized dataset."
          )
      return df_mean, df_std
  
file_path: lightning-flash/src/flash/tabular/classification/utils.py
imports: import logging
  from typing import Dict, List, Tuple
  import numpy
  from flash.core.utilities.imports import _PANDAS_AVAILABLE
label_desc: Use image node_id 2 for calling a global function with example usage: _compute_normalization(df, num_cols) and returns: df_mean,  df_std