def test_numpy_vector_input(self): x = randn(3) detrends = detrend_mean, detrend_none, detrend_linear scale_types = 'normalize', 'none', 'unbiased', 'biased', None maxlags = 2, None, 100 args = cartprod(maxlags, detrends, scale_types) for ml, dt, st in args: y = randn(randint(2, 3)) if ml > max(x.shape + y.shape): self.assertRaises(AssertionError, xcorr, x, detrend=dt, scale_type=st, maxlags=ml) self.assertRaises(AssertionError, xcorr, x, y, detrend=dt, scale_type=st, maxlags=ml) self.assertRaises(AssertionError, xcorr, x, y=None, detrend=dt, scale_type=st, maxlags=ml) else: xcnn = xcorr(x, detrend=dt, scale_type=st, maxlags=ml) xcnn2 = xcorr(x, y, detrend=dt, scale_type=st, maxlags=ml) xcnn3 = xcorr(x, y=None, detrend=dt, scale_type=st, maxlags=ml) self.assertIsInstance(xcnn, np.ndarray) self.assertIsInstance(xcnn2, np.ndarray) self.assertIsInstance(xcnn3, np.ndarray)
def test_numpy_matrix_input(self): x = randn(10, 15) detrends = detrend_mean, detrend_none, detrend_linear scale_types = 'normalize', None, 'unbiased', 'biased' maxlags = 8, None, 100 args = cartprod(maxlags, detrends, scale_types) for ml, dt, st in args: if ml > x.shape[0]: self.assertRaises(AssertionError, xcorr, x, detrend=dt, scale_type=st, maxlags=ml) else: xcnn = xcorr(x, detrend=dt, scale_type=st, maxlags=ml) self.assertIsInstance(xcnn, np.ndarray)
def test_matrix_vs_numpy_correlate(self): m, n = 5, 3 x = randn(m, n) rng = xrange(n) detrends = detrend_mean, detrend_none, detrend_linear scale_types = 'normalize', None, 'unbiased', 'biased' maxlags = None, 2, 20 args = cartprod(maxlags, detrends, scale_types) xc_np = np.zeros((2 * m - 1, n ** 2)) cart = cartesian((np.arange(n), np.arange(n))) cols = map(tuple, cart) for ml, dt, st in args: xc_np.fill(0) mml = ml if ml is not None else m xc_span = DataFrame(xc_np.copy(), columns=cols, index=Int64Index(np.r_[1 - m:m])) for ci, (i, j) in enumerate(cartprod(rng, rng)): xi, xj = dt(x[:, i]), dt(x[:, j]) xc_np[:, ci] = np.correlate(xi, xj, mode='full') if st == 'normalize': cxx0 = sum(abs(xi) ** 2) cyy0 = sum(abs(xj) ** 2) xc_np[:, ci] /= np.sqrt(cxx0 * cyy0) elif st == 'biased': xc_np[:, ci] /= m elif st == 'unbiased': xc_np[:, ci] /= m - np.abs(np.r_[1 - m:m]) xc_span[i, j] = xcorr(xi, xj, detrend=dt, scale_type=st) if ml > m: self.assertRaises(AssertionError, xcorr, x, detrend=dt, scale_type=st, maxlags=ml) else: xcc = xcorr(x, detrend=dt, scale_type=st, maxlags=ml) assert_allclose(xc_np, xc_span) dd = DataFrame(xc_np, index=np.r_[1 - m:m]) # funky pandas df indexing must subtract one because endpoints # are inclusive assert_allclose(dd.ix[1 - mml:mml - 1].values, xcc) self.assertIsInstance(xcc, np.ndarray) if ml > m: self.assertRaises(AssertionError, xcorr, DataFrame(x), detrend=dt, scale_type=st, maxlags=ml) else: xccdf = xcorr(DataFrame(x), detrend=dt, scale_type=st, maxlags=ml) assert_allclose(xccdf, xcc) self.assertIsInstance(xccdf, DataFrame) if ml > m: self.assertRaises(AssertionError, xcorr, Series(x[:, 0]), detrend=dt, scale_type=st, maxlags=ml) self.assertRaises(AssertionError, xcorr, x[:, 0], detrend=dt, scale_type=st, maxlags=ml) else: xc_s = xcorr(Series(x[:, 0]), detrend=dt, scale_type=st, maxlags=ml) xc_s2 = xcorr(Series(x[:, 0]), y=None, detrend=dt, scale_type=st, maxlags=ml) assert_allclose(xc_s, xc_s2) if ml > m: self.assertRaises(AssertionError, xcorr, Series(x[:, 0]), Series(x[:, 1]), detrend=dt, scale_type=st, maxlags=ml) self.assertRaises(AssertionError, xcorr, x[:, 0], x[:, 1], detrend=dt, scale_type=st, maxlags=ml) else: xc_s2 = xcorr(Series(x[:, 0]), Series(x[:, 1]), detrend=dt, scale_type=st, maxlags=ml) xc_s2_np = xcorr(x[:, 0], x[:, 1], detrend=dt, scale_type=st, maxlags=ml) assert_allclose(xc_s2, xc_s2_np)
][0] # Set color maps colormaps = np.tile('afmhot', [2, 2, 3]) colormaps[:, :, 0], colormaps[:, 1, 2] = 'Greys', 'jet' # Set color range limits vminarr, vmaxarr = np.tile(-.015, [2, 2, 3]), np.tile(.015, [2, 2, 3]) vminarr[:, 0, 0] = -10 / np.array([exptimev, exptimev]) vmaxarr[:, 0, 0] = 150 / np.array([exptimev, exptimev]) vminarr[:, 1, 2], vmaxarr[:, 1, 2] = 0, 180 # Plot data fig = plt.figure(figsize=(24, 18)) for gsnr, grspec in enumerate([gs1, gs2]): for [pltrownr, pltcolnr], [gsrow, gscol] in zip(cartprod(range(2), range(3)), cartprod([0, 4], range(3))): if not (pltrownr == 1 and pltcolnr == 0): axarrs[gsnr][pltrownr][pltcolnr] = fig.add_subplot( grspec[gsrow:gsrow + 4, gscol]) imswinds[gsnr][pltrownr][pltcolnr] = axarrs[gsnr][pltrownr][ pltcolnr].imshow(pltlst[gsnr][pltrownr][pltcolnr][:, 734:936], origin='lower', cmap=colormaps[gsnr, pltrownr, pltcolnr], vmin=vminarr[gsnr, pltrownr, pltcolnr], vmax=vmaxarr[gsnr, pltrownr, pltcolnr], extent=[ np.min(scapexslitarcs[734:936]), np.max(scapexslitarcs[734:936]), np.min(scapeyslitarcs),