code: def threenum(h5file, var, post_col='mult'):
      f = h5py.File(h5file, 'r')
      d = f[var]
      w = f[post_col]
      s = d.chunks[0]
      n = d.shape[0]
      maxval = -np.abs(d[0])
      minval = np.abs(d[0])
      total = 0
      wsum = 0
      for x in range(0, n, s):
          aN = ~np.logical_or(np.isnan(d[x:x+s]), np.isinf(d[x:x+s]))
          d_c = d[x:x+s][aN]
          w_c = w[x:x+s][aN]
          chunk_max = np.max(d_c)
          chunk_min = np.min(d_c)
          maxval = chunk_max if chunk_max > maxval else maxval
          minval = chunk_min if chunk_min < minval else minval
          total += np.sum(w_c*d_c)
          wsum  += np.sum(w_c)
      f.close()
      mean = total/float(wsum)
      return (minval, maxval, mean)