code: def _tile_pearson_cross(left, right, min_periods):
      left_tensor, right_tensor = (
          left.fillna(0).to_tensor(),
          right.fillna(0).to_tensor(),
      )
  
      nna_left = left.notna().to_tensor().astype(np.float_)
      nna_right = right.notna().to_tensor().astype(np.float_)
  
      sum_left = left_tensor.T.dot(nna_right)
      sum_right = right_tensor.T.dot(nna_left)
      sum_left2 = (left_tensor.T**2).dot(nna_right)
      sum_right2 = (right_tensor.T**2).dot(nna_left)
      sum_mul = left_tensor.T.dot(right_tensor)
      data_count = nna_left.T.dot(nna_right)
  
      divisor = np.sqrt(
          data_count * sum_left2 - sum_left * sum_left
      ).T * np.sqrt(data_count * sum_right2 - sum_right * sum_right)
  
      result = (data_count * sum_mul - sum_left * sum_right.T) / divisor
      if min_periods is not None:
          result = np.where(data_count >= min_periods, result, np.nan)
      return result
  
imports: import numpy
  import pandas
  from ...None import opcodes
  from ...core import ENTITY_TYPE, recursive_tile
  from ...serialization.serializables import BoolField, AnyField, KeyField, Int32Field
  from ...tensor.utils import filter_inputs
  from ...utils import has_unknown_shape
  from ..core import SERIES_TYPE, DATAFRAME_TYPE
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..utils import build_empty_df, validate_axis, parse_index
label_desc: Use image node_id 4 for calling the DataFrameCorr obj's underlying member method code with example usage: obj._tile_pearson_cross(left, right, min_periods) and returns: result