code: def is_array_like(obj: object) -> bool:
      """
      Check if the object is array-like.
  
      For an object to be considered array-like, it must be list-like and
      have a `dtype` attribute.
  
      Parameters
      ----------
      obj : The object to check
  
      Returns
      -------
      is_array_like : bool
          Whether `obj` has array-like properties.
  
      Examples
      --------
      >>> is_array_like(np.array([1, 2, 3]))
      True
      >>> is_array_like(pd.Series(["a", "b"]))
      True
      >>> is_array_like(pd.Index(["2016-01-01"]))
      True
      >>> is_array_like([1, 2, 3])
      False
      >>> is_array_like(("a", "b"))
      False
      """
      return is_list_like(obj) and hasattr(obj, "dtype")
  
file_path: pandas/pandas/core/dtypes/inference.py
imports: from __future__ import annotations
  from collections import abc
  from numbers import Number
  import re
  from re import Pattern
  from typing import TYPE_CHECKING
  import numpy
  from pandas._libs import lib
label_desc: Use image node_id 6 for calling a global function with example usage: is_array_like(obj) and returns: unknown