<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def histogram(self, bmus=None):
 """\ Return a 2D histogram of bmus. :param bmus: the best-match units indexes for underlying data. :type bmus: :class:`numpy.ndarray` :returns: the computed 2D histogram of bmus. :rtype: :class:`numpy.ndarray` """

        if bmus is None:
            assert self._bmus is not None, 'not trained'
            bmus = self._bmus
        arr = np.zeros((self._som.nrows, self._som.ncols))
        for i,j in bmus:
            arr[i,j] += 1
        return arr