code: def calculate_correlation_matrix(X, Y=None):
      """Calculate the correlation matrix for the dataset X"""
      if Y is None:
          Y = X
      n_samples = np.shape(X)[0]
      covariance = (1 / n_samples) * (X - X.mean(0)).T.dot(
          Y - Y.mean(0)
      )
      std_dev_X = np.expand_dims(calculate_std_dev(X), 1)
      std_dev_y = np.expand_dims(calculate_std_dev(Y), 1)
      correlation_matrix = np.divide(
          covariance, std_dev_X.dot(std_dev_y.T)
      )
  
      return np.array(correlation_matrix, dtype=float)
  
file_path: ML-From-Scratch/mlfromscratch/utils/data_operation.py
imports: from __future__ import division
  import numpy
  import math
  import sys
label_desc: Use image node_id 8 for calling a global function with example usage: calculate_correlation_matrix(X, Y) and returns: np