<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def zscore(self, weighted=True, prune=False, hs_dims=None):
 """Return ndarray with cube's zscore measurements. Zscore is a measure of statistical significance of observed vs. expected counts. It's only applicable to a 2D contingency tables. For 3D cubes, the measures of separate slices are stacked together and returned as the result. :param weighted: Use weighted counts for zscores :param prune: Prune based on unweighted counts :param hs_dims: Include headers and subtotals (as NaN values) :returns zscore: ndarray representing zscore measurements """

        res = [s.zscore(weighted, prune, hs_dims) for s in self.slices]
        return np.array(res) if self.ndim == 3 else res[0]