class_docstr: An ``ElementData`` stores "shared" information about a set of a graph elements (nodes or
  edges). Elements of every type must have this information, such as the type itself or the
  source, target and weight for edges.
  
  It indexes these in terms of ilocs (see :class:`.ExternalIdIndex`). The data is stored as columns
  of raw numpy arrays, because indexing such arrays is significantly (orders of magnitude) faster
  than indexing pandas dataframes, series or indices.
  
  Args:
      ids (sequence): the IDs of each element
      type_info (list of tuple of type name, numpy array): the associated feature vectors of each type, where the size of the first dimension defines the elements of that type
class_docstr_tok: ["An","``","ElementData","``","stores","``","shared","''","information","about","a","set","of","a","graph","elements","(","nodes","or","edges",")",".","Elements","of","every","type","must","have","this","information",",","such","as","the","type","itself","or","the","source",",","target","and","weight","for","edges",".","It","indexes","these","in","terms","of","ilocs","(","see",":","class",":","`",".ExternalIdIndex","`",")",".","The","data","is","stored","as","columns","of","raw","numpy","arrays",",","because","indexing","such","arrays","is","significantly","(","orders","of","magnitude",")","faster","than","indexing","pandas","dataframes",",","series","or","indices",".","Args",":","ids","(","sequence",")",":","the","IDs","of","each","element","type_info","(","list","of","tuple","of","type","name",",","numpy","array",")",":","the","associated","feature","vectors","of","each","type",",","where","the","size","of","the","first","dimension","defines","the","elements","of","that","type"]
docstr: Returns:
       All of the IDs of these elements.
code: def ids(self) -> ExternalIdIndex:
      """
      Returns:
           All of the IDs of these elements.
      """
      return self._id_index
  
imports: import itertools
  from collections import defaultdict
  import numpy
  import pandas
  import scipy.sparse
  from ..globalvar import SOURCE, TARGET, WEIGHT, TYPE_ATTR_NAME
  from .validation import require_dataframe_has_columns, comma_sep
label_desc: Use image node_id 4 for calling the ElementData obj's underlying member method code with example usage: obj.ids() and returns: self