def _find_neighbors(self, inst, avg_dist):
        """ Identify nearest as well as farthest hits and misses within radius defined by average distance over whole distance array.
        This works the same regardless of endpoint type. """
        NN_near = []
        NN_far = []
        min_indices = []
        max_indices = []

        for i in range(self._datalen):
            if inst != i:
                locator = [inst, i]
                if i > inst:
                    locator.reverse()
                d = self._distance_array[locator[0]][locator[1]]
                if d < avg_dist:
                    min_indices.append(i)
                if d > avg_dist:
                    max_indices.append(i)

        for i in range(len(min_indices)):
            NN_near.append(min_indices[i])
        for i in range(len(max_indices)):
            NN_far.append(max_indices[i])

        return np.array(NN_near, dtype=np.int32), np.array(NN_far, dtype=np.int32)
Identify nearest as well as farthest hits and misses within radius defined by average distance over whole distance array.
        This works the same regardless of endpoint type.