code: def get_bond_lengths(self, indices):
          
          coords = ['x', 'y', 'z']
          if isinstance(indices, pd.DataFrame):
              i_pos = self.loc[indices.index, coords].values
              b_pos = self.loc[indices.loc[:, 'b'], coords].values
          else:
              indices = np.array(indices)
              if len(indices.shape) == 1:
                  indices = indices[None, :]
              i_pos = self.loc[indices[:, 0], coords].values
              b_pos = self.loc[indices[:, 1], coords].values
          return np.linalg.norm(i_pos - b_pos, axis=1)
docs: Return the distances between given atoms.
  
          Calculates the distance between the atoms with
          indices ``i`` and ``b``.
          The indices can be given in three ways:
  
          * As simple list ``[i, b]``
          * As list of lists: ``[[i1, b1], [i2, b2]...]``
          * As :class:`pd.DataFrame` where ``i`` is taken from the index and
            ``b`` from the respective column ``'b'``.
  
          Args:
              indices (list):
  
          Returns:
              :class:`numpy.ndarray`: Vector of angles in degrees.