docs: def array(self):
          """
          read all raster bands into a numpy ndarray
  
          Returns
          -------
          numpy.ndarray
              the array containing all raster data
          """
          if self.bands == 1:
              return self.matrix()
          else:
              arr = self.raster.ReadAsArray().transpose(1, 2, 0)
              if isinstance(self.nodata, list):
                  for i in range(0, self.bands):
                      arr[:, :, i][arr[:, :, i] == self.nodata[i]] = np.nan
              else:
                  arr[arr == self.nodata] = np.nan
              return arr