code: def numpy_to_encodable(array: np.ndarray) -> Optional[dict]:
      encoded_numpy = {
          "type": "numpy",
          "shape": array.shape[0],
          "dtype": "float64",  # hardcoded for now
      }
  
      if array.dtype == "float64":
          encoded_numpy["blob"] = array.tobytes()
      elif array.dtype == "object":
          return None
      else:
          encoded_numpy["blob"] = array.astype("float64").tobytes()
      return encoded_numpy
  
imports: import asyncio
  import numpy
  import random
  import struct
  import time
  from collections import namedtuple
  from itertools import chain
  from typing import Iterator, Tuple, Optional, List
  from typing import TYPE_CHECKING
  from fastapi import HTTPException
  from aim.storage.context import Context
  from aim.sdk import Run
  from aim.sdk.sequences.metric import Metric
  from aim.sdk.sequence_collection import SequenceCollection
  from aim.storage.query import syntax_error_check
  from aim.web.configs import AIM_PROGRESS_REPORT_INTERVAL
  from aim.web.api.projects.project import Project
  from aim.web.api.runs.pydantic_models import AlignedRunIn, TraceBase
  from aim.storage.treeutils import encode_tree
label_desc: Use image node_id 6 for calling a global function with example usage: numpy_to_encodable(array) and returns: encoded_numpy, None