Correlation function of DR12Q SDSS Quasar Catalog

First import all the modules such as healpy and astropy needed for analyzing the structure


In [1]:
import healpix_util as hu
import astropy as ap
import numpy as np
from astropy.io import fits
from astropy.table import Table
import astropy.io.ascii as ascii
from astropy.io import fits
from astropy.constants import c
import matplotlib.pyplot as plt
import math as m
from math import pi
#from scipy.constants import c
import scipy.special as sp
from astroML.decorators import pickle_results
from scipy import integrate
import warnings
from sklearn.neighbors import BallTree
import pickle
import multiprocessing as mp
import time
from aptestmetricdt import *
from aptestmetricdz import *
from scipy.spatial import distance as d
from apcat import *
from progressbar import *
from tqdm import *
from functools import partial
import pymangle
from apdz import *
from apdt import *
from scipy.optimize import curve_fit
#from astroML.datasets import fetch_sdss_specgals
#from astroML.correlation import bootstrap_two_point_angular
%matplotlib inline

In [2]:
# Getting back the objects:
with open('../output/DR12Qbin1.pkl') as f:  # Python 3: open(..., 'rb')
    dat = pickle.load(f)
dat


Out[2]:
array([[  1.36035800e+00,   9.30000000e-05,  -3.54870000e-02],
       [  1.13454400e+00,   6.82000000e-04,   2.43272000e-01],
       [  8.35325000e-01,   7.58000000e-04,  -1.42169000e-01],
       ..., 
       [  7.86509000e-01,   6.28274400e+00,   2.60439000e-01],
       [  8.35873000e-01,   6.28277000e+00,   1.59740000e-01],
       [  1.19725300e+00,   6.28307200e+00,   3.69546000e-01]])

Read the data file (taken from http://cosmo.nyu.edu/~eak306/SDSS-LRG.html ) converted to ascii with comoving distance etc. in V01 reading from pkl files for faster read


In [3]:
# Getting back the objects:
with open('../output/randDR12Qbin1.pkl') as f:  # Python 3: open(..., 'rb')
    datR = pickle.load(f)
datR


Out[3]:
array([[ 1.360358,  4.269086,  0.514813],
       [ 1.134544,  0.060924,  0.615164],
       [ 0.835325,  5.941764,  0.184429],
       ..., 
       [ 0.786509,  2.980918,  0.480278],
       [ 0.835873,  0.522808, -0.123566],
       [ 1.197253,  3.449246,  0.619426]])

In [4]:
dr2d=np.zeros((20,20))

In [5]:
rng = np.array([[0, 0.02], [0, 0.02]])

In [8]:
%%time
dist0=d.cdist([dat[0],],datR,APdz)[0]
dist1=d.cdist([dat[0],],datR,APzdth)[0]
print np.histogram2d(dist0, dist1,bins=20, range=rng)


(array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.]]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]))
CPU times: user 682 ms, sys: 33.8 ms, total: 716 ms
Wall time: 691 ms

In [9]:
%%time
for i in tqdm(xrange(len(dat))):
    dist0=d.cdist([dat[i],],datR,APdz)[0]
    dist1=d.cdist([dat[i],],datR,APzdth)[0]
    dr2d+=np.histogram2d(dist0, dist1, bins=20,range=rng)[0]
print dr2d


100%|██████████| 48309/48309 [7:24:24<00:00,  1.83it/s]  
[[  14.   34.   47.   82.  126.  136.  129.  179.  206.  222.  240.  244.
   278.  321.  334.  405.  361.  402.  403.  432.]
 [  14.   37.   53.   88.  121.  111.  135.  167.  196.  211.  232.  263.
   316.  306.  314.  346.  424.  390.  418.  415.]
 [   9.   40.   47.   93.   87.  151.  156.  198.  201.  205.  220.  276.
   291.  309.  369.  350.  344.  363.  404.  458.]
 [   7.   34.   56.   77.   80.  109.  124.  165.  202.  198.  239.  268.
   283.  323.  325.  362.  363.  386.  392.  446.]
 [  12.   33.   63.   75.  104.  112.  146.  174.  179.  223.  254.  262.
   281.  296.  316.  340.  363.  373.  469.  394.]
 [   8.   28.   53.   96.  103.  108.  144.  173.  187.  192.  227.  272.
   275.  315.  328.  359.  369.  417.  394.  403.]
 [  14.   16.   64.   77.  103.  121.  138.  171.  189.  214.  236.  281.
   288.  281.  288.  335.  363.  413.  419.  417.]
 [  11.   29.   55.   95.   97.  123.  149.  165.  200.  209.  247.  249.
   303.  302.  328.  341.  342.  411.  419.  443.]
 [  16.   31.   46.   79.  105.  135.  137.  178.  177.  210.  228.  252.
   269.  280.  323.  379.  407.  397.  386.  436.]
 [   6.   33.   62.   78.   91.  113.  149.  171.  175.  206.  247.  258.
   284.  296.  301.  301.  354.  405.  418.  430.]
 [  11.   36.   72.   70.  103.  112.  129.  156.  213.  242.  245.  255.
   237.  281.  326.  340.  373.  384.  401.  418.]
 [  12.   26.   45.   80.  103.  125.  147.  177.  189.  216.  213.  250.
   298.  311.  344.  351.  380.  392.  384.  417.]
 [  11.   29.   47.   82.   91.  125.  131.  196.  177.  217.  214.  248.
   299.  313.  324.  370.  397.  404.  375.  429.]
 [   8.   32.   49.   64.  103.  123.  123.  177.  175.  218.  239.  253.
   271.  280.  293.  333.  369.  390.  398.  440.]
 [  10.   39.   48.   76.   84.  123.  144.  172.  187.  225.  219.  229.
   259.  278.  342.  343.  343.  377.  426.  423.]
 [  15.   24.   44.   77.   99.  119.  150.  165.  196.  214.  238.  228.
   267.  304.  305.  359.  384.  370.  360.  398.]
 [  14.   37.   56.   93.  116.  114.  138.  182.  187.  204.  229.  232.
   260.  295.  303.  353.  331.  369.  392.  407.]
 [   9.   26.   29.   80.   98.  117.  140.  188.  189.  195.  222.  246.
   296.  312.  309.  334.  343.  400.  400.  425.]
 [  10.   39.   56.   79.  109.  103.  144.  148.  204.  222.  232.  236.
   280.  310.  309.  345.  381.  380.  433.  405.]
 [   8.   38.   46.   76.   94.  118.  138.  154.  199.  210.  237.  259.
   290.  279.  321.  350.  333.  404.  380.  410.]]
CPU times: user 7h 19min 16s, sys: 10min 43s, total: 7h 29min 59s
Wall time: 7h 24min 24s

In [10]:
with open('DR12QDRbin1.pkl','w') as f:
    pickle.dump(dr2d,f)    
dr2d


Out[10]:
array([[  14.,   34.,   47.,   82.,  126.,  136.,  129.,  179.,  206.,
         222.,  240.,  244.,  278.,  321.,  334.,  405.,  361.,  402.,
         403.,  432.],
       [  14.,   37.,   53.,   88.,  121.,  111.,  135.,  167.,  196.,
         211.,  232.,  263.,  316.,  306.,  314.,  346.,  424.,  390.,
         418.,  415.],
       [   9.,   40.,   47.,   93.,   87.,  151.,  156.,  198.,  201.,
         205.,  220.,  276.,  291.,  309.,  369.,  350.,  344.,  363.,
         404.,  458.],
       [   7.,   34.,   56.,   77.,   80.,  109.,  124.,  165.,  202.,
         198.,  239.,  268.,  283.,  323.,  325.,  362.,  363.,  386.,
         392.,  446.],
       [  12.,   33.,   63.,   75.,  104.,  112.,  146.,  174.,  179.,
         223.,  254.,  262.,  281.,  296.,  316.,  340.,  363.,  373.,
         469.,  394.],
       [   8.,   28.,   53.,   96.,  103.,  108.,  144.,  173.,  187.,
         192.,  227.,  272.,  275.,  315.,  328.,  359.,  369.,  417.,
         394.,  403.],
       [  14.,   16.,   64.,   77.,  103.,  121.,  138.,  171.,  189.,
         214.,  236.,  281.,  288.,  281.,  288.,  335.,  363.,  413.,
         419.,  417.],
       [  11.,   29.,   55.,   95.,   97.,  123.,  149.,  165.,  200.,
         209.,  247.,  249.,  303.,  302.,  328.,  341.,  342.,  411.,
         419.,  443.],
       [  16.,   31.,   46.,   79.,  105.,  135.,  137.,  178.,  177.,
         210.,  228.,  252.,  269.,  280.,  323.,  379.,  407.,  397.,
         386.,  436.],
       [   6.,   33.,   62.,   78.,   91.,  113.,  149.,  171.,  175.,
         206.,  247.,  258.,  284.,  296.,  301.,  301.,  354.,  405.,
         418.,  430.],
       [  11.,   36.,   72.,   70.,  103.,  112.,  129.,  156.,  213.,
         242.,  245.,  255.,  237.,  281.,  326.,  340.,  373.,  384.,
         401.,  418.],
       [  12.,   26.,   45.,   80.,  103.,  125.,  147.,  177.,  189.,
         216.,  213.,  250.,  298.,  311.,  344.,  351.,  380.,  392.,
         384.,  417.],
       [  11.,   29.,   47.,   82.,   91.,  125.,  131.,  196.,  177.,
         217.,  214.,  248.,  299.,  313.,  324.,  370.,  397.,  404.,
         375.,  429.],
       [   8.,   32.,   49.,   64.,  103.,  123.,  123.,  177.,  175.,
         218.,  239.,  253.,  271.,  280.,  293.,  333.,  369.,  390.,
         398.,  440.],
       [  10.,   39.,   48.,   76.,   84.,  123.,  144.,  172.,  187.,
         225.,  219.,  229.,  259.,  278.,  342.,  343.,  343.,  377.,
         426.,  423.],
       [  15.,   24.,   44.,   77.,   99.,  119.,  150.,  165.,  196.,
         214.,  238.,  228.,  267.,  304.,  305.,  359.,  384.,  370.,
         360.,  398.],
       [  14.,   37.,   56.,   93.,  116.,  114.,  138.,  182.,  187.,
         204.,  229.,  232.,  260.,  295.,  303.,  353.,  331.,  369.,
         392.,  407.],
       [   9.,   26.,   29.,   80.,   98.,  117.,  140.,  188.,  189.,
         195.,  222.,  246.,  296.,  312.,  309.,  334.,  343.,  400.,
         400.,  425.],
       [  10.,   39.,   56.,   79.,  109.,  103.,  144.,  148.,  204.,
         222.,  232.,  236.,  280.,  310.,  309.,  345.,  381.,  380.,
         433.,  405.],
       [   8.,   38.,   46.,   76.,   94.,  118.,  138.,  154.,  199.,
         210.,  237.,  259.,  290.,  279.,  321.,  350.,  333.,  404.,
         380.,  410.]])

In [11]:
# Getting back the objects:
with open('../output/DR12Qbin2.pkl') as f:  # Python 3: open(..., 'rb')
    dat = pickle.load(f)
dat


Out[11]:
array([[  1.61884600e+00,   7.10000000e-05,   8.42960000e-02],
       [  1.57613400e+00,   1.49000000e-04,   6.05257000e-01],
       [  1.71010300e+00,   1.57000000e-04,   2.66244000e-01],
       ..., 
       [  1.62190900e+00,   6.28264600e+00,  -7.35650000e-02],
       [  1.56940900e+00,   6.28270300e+00,  -7.70830000e-02],
       [  1.84922100e+00,   6.28282000e+00,   3.38480000e-02]])

Read the data file (taken from http://cosmo.nyu.edu/~eak306/SDSS-LRG.html ) converted to ascii with comoving distance etc. in V01 reading from pkl files for faster read


In [12]:
# Getting back the objects:
with open('../output/randDR12Qbin2.pkl') as f:  # Python 3: open(..., 'rb')
    datR = pickle.load(f)
datR


Out[12]:
array([[ 1.618846,  3.273344,  0.29723 ],
       [ 1.576134,  3.051385,  0.946603],
       [ 1.710103,  3.953683,  0.110164],
       ..., 
       [ 1.621909,  3.488914,  0.172668],
       [ 1.569409,  0.428843,  0.035387],
       [ 1.849221,  2.659185,  0.276303]])

In [13]:
dr2d=np.zeros((20,20))

In [14]:
%%time
dist0=d.cdist([dat[0],],datR,APdz)[0]
dist1=d.cdist([dat[0],],datR,APzdth)[0]
print np.histogram2d(dist0, dist1,bins=20, range=rng)


(array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.]]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]))
CPU times: user 530 ms, sys: 37.5 ms, total: 567 ms
Wall time: 539 ms

In [15]:
%%time
for i in tqdm(xrange(len(dat))):
    dist0=d.cdist([dat[i],],datR,APdz)[0]
    dist1=d.cdist([dat[i],],datR,APzdth)[0]
    dr2d+=np.histogram2d(dist0, dist1, bins=20,range=rng)[0]
print dr2d


100%|██████████| 42650/42650 [5:44:03<00:00,  2.14it/s]  
[[  1.   8.  11.  11.   9.  17.  18.  30.  22.  36.  38.  40.  52.  45.
   53.  49.  67.  55.  58.  69.]
 [  0.   4.  14.  10.  20.  21.  22.  26.  24.  30.  39.  31.  48.  42.
   45.  47.  62.  55.  66.  69.]
 [  4.   4.   5.  12.  23.  10.  23.  23.  37.  40.  30.  37.  42.  48.
   51.  44.  55.  65.  51.  69.]
 [  1.   6.   8.  16.  19.  24.  23.  29.  35.  38.  38.  32.  43.  35.
   48.  47.  46.  58.  63.  74.]
 [  3.   5.   9.  13.  14.  16.  32.  26.  36.  29.  33.  36.  37.  34.
   37.  46.  64.  46.  72.  64.]
 [  1.   6.   9.  20.  17.  17.  24.  32.  27.  21.  35.  48.  45.  46.
   34.  50.  59.  56.  68.  54.]
 [  2.   7.  13.  12.  15.  15.  19.  19.  29.  29.  39.  33.  49.  51.
   49.  45.  53.  64.  69.  71.]
 [  4.   6.  16.  21.  15.  25.  17.  36.  23.  28.  34.  42.  35.  35.
   45.  46.  43.  58.  47.  71.]
 [  1.   7.   8.  14.  14.  23.  12.  22.  27.  38.  42.  30.  42.  43.
   53.  47.  47.  61.  55.  60.]
 [  1.   7.   9.   8.  17.  20.  24.  22.  20.  39.  34.  22.  42.  51.
   36.  46.  56.  63.  67.  53.]
 [  1.   3.  13.  10.  15.  22.  26.  24.  39.  31.  38.  42.  39.  45.
   57.  43.  55.  56.  64.  58.]
 [  1.   1.  10.  10.  15.  22.  19.  28.  37.  46.  41.  40.  44.  38.
   49.  49.  58.  56.  53.  62.]
 [  0.   4.   9.  15.  10.  15.  23.  24.  32.  37.  40.  37.  44.  49.
   44.  62.  49.  68.  61.  62.]
 [  1.   7.  13.  14.  15.  20.  14.  19.  27.  31.  30.  54.  43.  42.
   50.  48.  56.  61.  55.  75.]
 [  3.   2.   6.  13.   8.  18.  34.  33.  28.  28.  35.  35.  35.  46.
   59.  57.  58.  53.  75.  68.]
 [  3.   6.   6.  15.  11.  22.  14.  25.  26.  24.  26.  32.  38.  35.
   41.  67.  55.  48.  45.  66.]
 [  4.   1.   8.  16.  18.  23.  26.  23.  28.  24.  41.  32.  43.  39.
   53.  50.  55.  53.  66.  66.]
 [  1.   5.   9.   7.  16.  16.  25.  20.  20.  38.  32.  48.  43.  35.
   52.  55.  62.  66.  68.  73.]
 [  2.   5.  11.  11.  10.  15.  29.  26.  35.  30.  35.  30.  47.  38.
   45.  42.  54.  59.  70.  59.]
 [  0.   5.   9.  10.  12.  15.  25.  19.  24.  25.  27.  36.  41.  44.
   44.  55.  41.  53.  64.  71.]]
CPU times: user 5h 41min 27s, sys: 8min 40s, total: 5h 50min 8s
Wall time: 5h 44min 3s


In [16]:
with open('DR12QDRbin2.pkl','w') as f:
    pickle.dump(dr2d,f)    
dr2d


Out[16]:
array([[  1.,   8.,  11.,  11.,   9.,  17.,  18.,  30.,  22.,  36.,  38.,
         40.,  52.,  45.,  53.,  49.,  67.,  55.,  58.,  69.],
       [  0.,   4.,  14.,  10.,  20.,  21.,  22.,  26.,  24.,  30.,  39.,
         31.,  48.,  42.,  45.,  47.,  62.,  55.,  66.,  69.],
       [  4.,   4.,   5.,  12.,  23.,  10.,  23.,  23.,  37.,  40.,  30.,
         37.,  42.,  48.,  51.,  44.,  55.,  65.,  51.,  69.],
       [  1.,   6.,   8.,  16.,  19.,  24.,  23.,  29.,  35.,  38.,  38.,
         32.,  43.,  35.,  48.,  47.,  46.,  58.,  63.,  74.],
       [  3.,   5.,   9.,  13.,  14.,  16.,  32.,  26.,  36.,  29.,  33.,
         36.,  37.,  34.,  37.,  46.,  64.,  46.,  72.,  64.],
       [  1.,   6.,   9.,  20.,  17.,  17.,  24.,  32.,  27.,  21.,  35.,
         48.,  45.,  46.,  34.,  50.,  59.,  56.,  68.,  54.],
       [  2.,   7.,  13.,  12.,  15.,  15.,  19.,  19.,  29.,  29.,  39.,
         33.,  49.,  51.,  49.,  45.,  53.,  64.,  69.,  71.],
       [  4.,   6.,  16.,  21.,  15.,  25.,  17.,  36.,  23.,  28.,  34.,
         42.,  35.,  35.,  45.,  46.,  43.,  58.,  47.,  71.],
       [  1.,   7.,   8.,  14.,  14.,  23.,  12.,  22.,  27.,  38.,  42.,
         30.,  42.,  43.,  53.,  47.,  47.,  61.,  55.,  60.],
       [  1.,   7.,   9.,   8.,  17.,  20.,  24.,  22.,  20.,  39.,  34.,
         22.,  42.,  51.,  36.,  46.,  56.,  63.,  67.,  53.],
       [  1.,   3.,  13.,  10.,  15.,  22.,  26.,  24.,  39.,  31.,  38.,
         42.,  39.,  45.,  57.,  43.,  55.,  56.,  64.,  58.],
       [  1.,   1.,  10.,  10.,  15.,  22.,  19.,  28.,  37.,  46.,  41.,
         40.,  44.,  38.,  49.,  49.,  58.,  56.,  53.,  62.],
       [  0.,   4.,   9.,  15.,  10.,  15.,  23.,  24.,  32.,  37.,  40.,
         37.,  44.,  49.,  44.,  62.,  49.,  68.,  61.,  62.],
       [  1.,   7.,  13.,  14.,  15.,  20.,  14.,  19.,  27.,  31.,  30.,
         54.,  43.,  42.,  50.,  48.,  56.,  61.,  55.,  75.],
       [  3.,   2.,   6.,  13.,   8.,  18.,  34.,  33.,  28.,  28.,  35.,
         35.,  35.,  46.,  59.,  57.,  58.,  53.,  75.,  68.],
       [  3.,   6.,   6.,  15.,  11.,  22.,  14.,  25.,  26.,  24.,  26.,
         32.,  38.,  35.,  41.,  67.,  55.,  48.,  45.,  66.],
       [  4.,   1.,   8.,  16.,  18.,  23.,  26.,  23.,  28.,  24.,  41.,
         32.,  43.,  39.,  53.,  50.,  55.,  53.,  66.,  66.],
       [  1.,   5.,   9.,   7.,  16.,  16.,  25.,  20.,  20.,  38.,  32.,
         48.,  43.,  35.,  52.,  55.,  62.,  66.,  68.,  73.],
       [  2.,   5.,  11.,  11.,  10.,  15.,  29.,  26.,  35.,  30.,  35.,
         30.,  47.,  38.,  45.,  42.,  54.,  59.,  70.,  59.],
       [  0.,   5.,   9.,  10.,  12.,  15.,  25.,  19.,  24.,  25.,  27.,
         36.,  41.,  44.,  44.,  55.,  41.,  53.,  64.,  71.]])

In [ ]:


In [17]:
# Getting back the objects:
with open('../output/DR12Qbin3.pkl') as f:  # Python 3: open(..., 'rb')
    dat = pickle.load(f)
dat


Out[17]:
array([[  2.30909700e+00,   3.30000000e-05,   3.10210000e-01],
       [  2.49794100e+00,   4.80000000e-05,   2.61357000e-01],
       [  2.33265500e+00,   1.00000000e-04,  -2.31260000e-02],
       ..., 
       [  2.41550800e+00,   6.28316600e+00,   1.76571000e-01],
       [  2.45101500e+00,   6.28317000e+00,   5.05355000e-01],
       [  2.39766700e+00,   6.28318400e+00,   6.06452000e-01]])

Read the data file (taken from http://cosmo.nyu.edu/~eak306/SDSS-LRG.html ) converted to ascii with comoving distance etc. in V01 reading from pkl files for faster read


In [18]:
# Getting back the objects:
with open('../output/randDR12Qbin3.pkl') as f:  # Python 3: open(..., 'rb')
    datR = pickle.load(f)
datR


Out[18]:
array([[  2.30909700e+00,   3.30000000e-05,   3.10210000e-01],
       [  2.49794100e+00,   4.80000000e-05,   2.61357000e-01],
       [  2.33265500e+00,   1.00000000e-04,  -2.31260000e-02],
       ..., 
       [  2.41550800e+00,   6.28316600e+00,   1.76571000e-01],
       [  2.45101500e+00,   6.28317000e+00,   5.05355000e-01],
       [  2.39766700e+00,   6.28318400e+00,   6.06452000e-01]])

In [19]:
dr2d=np.zeros((20,20))

In [20]:
%%time
dist0=d.cdist([dat[0],],datR,APdz)[0]
dist1=d.cdist([dat[0],],datR,APzdth)[0]
print np.histogram2d(dist0, dist1,bins=20, range=rng)


(array([[ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  1.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.]]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]))
CPU times: user 1.64 s, sys: 132 ms, total: 1.77 s
Wall time: 1.66 s

In [21]:
%%time
for i in tqdm(xrange(len(dat))):
    dist0=d.cdist([dat[i],],datR,APdz)[0]
    dist1=d.cdist([dat[i],],datR,APzdth)[0]
    dr2d+=np.histogram2d(dist0, dist1, bins=20,range=rng)[0]
print dr2d


  0%|          | 1/139641 [00:01<63:01:28,  1.62s/it]/Users/rohin/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.py:804: RuntimeWarning: invalid value encountered in greater_equal
  not_smaller_than_edge = (sample[:, i] >= edges[i][-1])
100%|██████████| 139641/139641 [53:43:13<00:00,  1.08s/it]        
[[  1.32978000e+05   1.08000000e+02   1.26000000e+02   1.68000000e+02
    1.64000000e+02   2.16000000e+02   2.08000000e+02   2.08000000e+02
    2.40000000e+02   3.30000000e+02   3.26000000e+02   3.16000000e+02
    3.56000000e+02   3.26000000e+02   3.16000000e+02   3.92000000e+02
    3.86000000e+02   4.62000000e+02   4.84000000e+02   5.42000000e+02]
 [  4.00000000e+01   1.20000000e+02   1.62000000e+02   1.42000000e+02
    2.14000000e+02   1.94000000e+02   1.88000000e+02   2.14000000e+02
    3.08000000e+02   3.02000000e+02   2.58000000e+02   3.50000000e+02
    3.14000000e+02   3.82000000e+02   3.70000000e+02   4.18000000e+02
    4.14000000e+02   4.44000000e+02   5.20000000e+02   5.18000000e+02]
 [  3.40000000e+01   1.16000000e+02   1.36000000e+02   1.62000000e+02
    1.96000000e+02   2.42000000e+02   1.78000000e+02   2.22000000e+02
    2.84000000e+02   2.48000000e+02   3.08000000e+02   2.92000000e+02
    3.86000000e+02   4.02000000e+02   3.58000000e+02   4.02000000e+02
    4.22000000e+02   4.46000000e+02   4.72000000e+02   5.30000000e+02]
 [  4.80000000e+01   1.18000000e+02   1.38000000e+02   1.48000000e+02
    1.58000000e+02   2.12000000e+02   2.14000000e+02   2.32000000e+02
    2.50000000e+02   2.66000000e+02   3.20000000e+02   3.52000000e+02
    3.50000000e+02   2.74000000e+02   3.58000000e+02   3.76000000e+02
    4.08000000e+02   4.58000000e+02   4.92000000e+02   5.18000000e+02]
 [  3.20000000e+01   1.08000000e+02   1.20000000e+02   1.62000000e+02
    1.72000000e+02   1.62000000e+02   2.02000000e+02   2.60000000e+02
    2.30000000e+02   2.96000000e+02   3.16000000e+02   3.16000000e+02
    3.26000000e+02   3.62000000e+02   3.70000000e+02   4.18000000e+02
    4.12000000e+02   4.48000000e+02   4.28000000e+02   5.14000000e+02]
 [  5.40000000e+01   1.00000000e+02   1.26000000e+02   1.60000000e+02
    1.58000000e+02   1.94000000e+02   2.22000000e+02   2.70000000e+02
    2.52000000e+02   3.16000000e+02   2.92000000e+02   3.58000000e+02
    3.38000000e+02   3.72000000e+02   3.56000000e+02   4.02000000e+02
    4.44000000e+02   5.12000000e+02   4.58000000e+02   4.72000000e+02]
 [  4.40000000e+01   1.14000000e+02   1.50000000e+02   1.52000000e+02
    2.00000000e+02   1.86000000e+02   2.10000000e+02   1.90000000e+02
    2.28000000e+02   2.72000000e+02   2.84000000e+02   3.12000000e+02
    3.30000000e+02   4.04000000e+02   3.26000000e+02   3.96000000e+02
    4.50000000e+02   4.58000000e+02   4.32000000e+02   5.34000000e+02]
 [  3.60000000e+01   6.80000000e+01   1.24000000e+02   1.62000000e+02
    1.88000000e+02   1.78000000e+02   2.26000000e+02   2.52000000e+02
    2.44000000e+02   2.94000000e+02   2.90000000e+02   3.04000000e+02
    3.30000000e+02   3.76000000e+02   3.88000000e+02   3.88000000e+02
    4.34000000e+02   4.34000000e+02   4.24000000e+02   4.88000000e+02]
 [  2.80000000e+01   1.06000000e+02   1.12000000e+02   1.20000000e+02
    1.50000000e+02   1.88000000e+02   1.88000000e+02   2.08000000e+02
    2.48000000e+02   2.96000000e+02   3.16000000e+02   3.50000000e+02
    3.36000000e+02   3.50000000e+02   3.78000000e+02   4.52000000e+02
    4.18000000e+02   5.22000000e+02   4.30000000e+02   5.28000000e+02]
 [  4.20000000e+01   7.60000000e+01   1.20000000e+02   1.54000000e+02
    1.50000000e+02   1.66000000e+02   2.38000000e+02   2.20000000e+02
    2.28000000e+02   2.78000000e+02   3.06000000e+02   3.30000000e+02
    3.18000000e+02   3.62000000e+02   3.96000000e+02   4.56000000e+02
    4.18000000e+02   4.24000000e+02   4.76000000e+02   4.68000000e+02]
 [  4.20000000e+01   5.40000000e+01   1.40000000e+02   1.44000000e+02
    1.72000000e+02   1.62000000e+02   2.18000000e+02   2.16000000e+02
    2.38000000e+02   3.38000000e+02   3.18000000e+02   3.14000000e+02
    3.26000000e+02   3.68000000e+02   4.00000000e+02   3.82000000e+02
    4.16000000e+02   4.06000000e+02   4.34000000e+02   4.64000000e+02]
 [  3.60000000e+01   9.60000000e+01   9.00000000e+01   1.30000000e+02
    1.74000000e+02   1.80000000e+02   2.28000000e+02   2.22000000e+02
    2.68000000e+02   2.38000000e+02   2.86000000e+02   3.08000000e+02
    3.52000000e+02   3.28000000e+02   3.76000000e+02   4.26000000e+02
    3.98000000e+02   4.28000000e+02   4.98000000e+02   4.92000000e+02]
 [  2.00000000e+01   9.60000000e+01   9.60000000e+01   1.44000000e+02
    1.62000000e+02   2.12000000e+02   2.28000000e+02   2.10000000e+02
    2.64000000e+02   2.60000000e+02   3.22000000e+02   3.22000000e+02
    3.74000000e+02   3.54000000e+02   3.82000000e+02   4.38000000e+02
    4.20000000e+02   4.68000000e+02   4.30000000e+02   4.42000000e+02]
 [  2.80000000e+01   7.00000000e+01   9.00000000e+01   1.26000000e+02
    1.54000000e+02   1.78000000e+02   1.82000000e+02   1.76000000e+02
    2.46000000e+02   2.96000000e+02   3.12000000e+02   3.02000000e+02
    3.08000000e+02   3.54000000e+02   3.76000000e+02   4.18000000e+02
    3.74000000e+02   4.26000000e+02   4.56000000e+02   4.48000000e+02]
 [  2.60000000e+01   8.00000000e+01   1.06000000e+02   1.28000000e+02
    1.50000000e+02   1.76000000e+02   2.08000000e+02   2.62000000e+02
    2.32000000e+02   2.86000000e+02   2.78000000e+02   2.96000000e+02
    3.56000000e+02   3.38000000e+02   3.76000000e+02   3.68000000e+02
    4.04000000e+02   4.36000000e+02   4.42000000e+02   4.08000000e+02]
 [  2.60000000e+01   5.80000000e+01   1.02000000e+02   1.06000000e+02
    1.22000000e+02   1.74000000e+02   2.14000000e+02   2.36000000e+02
    2.40000000e+02   2.42000000e+02   2.78000000e+02   2.60000000e+02
    3.42000000e+02   3.14000000e+02   3.72000000e+02   3.74000000e+02
    4.12000000e+02   4.24000000e+02   3.92000000e+02   4.88000000e+02]
 [  2.00000000e+01   7.40000000e+01   1.02000000e+02   1.36000000e+02
    1.76000000e+02   1.46000000e+02   1.38000000e+02   2.04000000e+02
    2.18000000e+02   2.50000000e+02   2.64000000e+02   2.94000000e+02
    3.86000000e+02   3.82000000e+02   3.44000000e+02   3.76000000e+02
    3.92000000e+02   4.78000000e+02   4.78000000e+02   4.84000000e+02]
 [  3.00000000e+01   5.00000000e+01   1.04000000e+02   1.18000000e+02
    1.46000000e+02   1.38000000e+02   1.66000000e+02   1.96000000e+02
    2.06000000e+02   2.74000000e+02   3.56000000e+02   3.02000000e+02
    3.46000000e+02   3.30000000e+02   3.76000000e+02   4.06000000e+02
    3.94000000e+02   4.14000000e+02   4.62000000e+02   4.82000000e+02]
 [  3.20000000e+01   5.20000000e+01   1.08000000e+02   9.40000000e+01
    1.20000000e+02   1.46000000e+02   2.12000000e+02   2.10000000e+02
    2.28000000e+02   2.54000000e+02   2.90000000e+02   2.98000000e+02
    3.18000000e+02   3.88000000e+02   3.36000000e+02   4.16000000e+02
    4.64000000e+02   4.52000000e+02   4.08000000e+02   4.66000000e+02]
 [  6.00000000e+00   5.80000000e+01   8.40000000e+01   1.24000000e+02
    1.30000000e+02   1.48000000e+02   1.80000000e+02   1.66000000e+02
    2.56000000e+02   2.38000000e+02   3.00000000e+02   2.36000000e+02
    3.42000000e+02   3.50000000e+02   3.52000000e+02   3.20000000e+02
    4.48000000e+02   4.92000000e+02   4.56000000e+02   4.38000000e+02]]
CPU times: user 1d 21h 39min 20s, sys: 1h 54min 34s, total: 1d 23h 33min 54s
Wall time: 2d 5h 43min 13s


In [22]:
with open('DR12QDRbin3.pkl','w') as f:
    pickle.dump(dr2d,f)    
dr2d


Out[22]:
array([[  1.32978000e+05,   1.08000000e+02,   1.26000000e+02,
          1.68000000e+02,   1.64000000e+02,   2.16000000e+02,
          2.08000000e+02,   2.08000000e+02,   2.40000000e+02,
          3.30000000e+02,   3.26000000e+02,   3.16000000e+02,
          3.56000000e+02,   3.26000000e+02,   3.16000000e+02,
          3.92000000e+02,   3.86000000e+02,   4.62000000e+02,
          4.84000000e+02,   5.42000000e+02],
       [  4.00000000e+01,   1.20000000e+02,   1.62000000e+02,
          1.42000000e+02,   2.14000000e+02,   1.94000000e+02,
          1.88000000e+02,   2.14000000e+02,   3.08000000e+02,
          3.02000000e+02,   2.58000000e+02,   3.50000000e+02,
          3.14000000e+02,   3.82000000e+02,   3.70000000e+02,
          4.18000000e+02,   4.14000000e+02,   4.44000000e+02,
          5.20000000e+02,   5.18000000e+02],
       [  3.40000000e+01,   1.16000000e+02,   1.36000000e+02,
          1.62000000e+02,   1.96000000e+02,   2.42000000e+02,
          1.78000000e+02,   2.22000000e+02,   2.84000000e+02,
          2.48000000e+02,   3.08000000e+02,   2.92000000e+02,
          3.86000000e+02,   4.02000000e+02,   3.58000000e+02,
          4.02000000e+02,   4.22000000e+02,   4.46000000e+02,
          4.72000000e+02,   5.30000000e+02],
       [  4.80000000e+01,   1.18000000e+02,   1.38000000e+02,
          1.48000000e+02,   1.58000000e+02,   2.12000000e+02,
          2.14000000e+02,   2.32000000e+02,   2.50000000e+02,
          2.66000000e+02,   3.20000000e+02,   3.52000000e+02,
          3.50000000e+02,   2.74000000e+02,   3.58000000e+02,
          3.76000000e+02,   4.08000000e+02,   4.58000000e+02,
          4.92000000e+02,   5.18000000e+02],
       [  3.20000000e+01,   1.08000000e+02,   1.20000000e+02,
          1.62000000e+02,   1.72000000e+02,   1.62000000e+02,
          2.02000000e+02,   2.60000000e+02,   2.30000000e+02,
          2.96000000e+02,   3.16000000e+02,   3.16000000e+02,
          3.26000000e+02,   3.62000000e+02,   3.70000000e+02,
          4.18000000e+02,   4.12000000e+02,   4.48000000e+02,
          4.28000000e+02,   5.14000000e+02],
       [  5.40000000e+01,   1.00000000e+02,   1.26000000e+02,
          1.60000000e+02,   1.58000000e+02,   1.94000000e+02,
          2.22000000e+02,   2.70000000e+02,   2.52000000e+02,
          3.16000000e+02,   2.92000000e+02,   3.58000000e+02,
          3.38000000e+02,   3.72000000e+02,   3.56000000e+02,
          4.02000000e+02,   4.44000000e+02,   5.12000000e+02,
          4.58000000e+02,   4.72000000e+02],
       [  4.40000000e+01,   1.14000000e+02,   1.50000000e+02,
          1.52000000e+02,   2.00000000e+02,   1.86000000e+02,
          2.10000000e+02,   1.90000000e+02,   2.28000000e+02,
          2.72000000e+02,   2.84000000e+02,   3.12000000e+02,
          3.30000000e+02,   4.04000000e+02,   3.26000000e+02,
          3.96000000e+02,   4.50000000e+02,   4.58000000e+02,
          4.32000000e+02,   5.34000000e+02],
       [  3.60000000e+01,   6.80000000e+01,   1.24000000e+02,
          1.62000000e+02,   1.88000000e+02,   1.78000000e+02,
          2.26000000e+02,   2.52000000e+02,   2.44000000e+02,
          2.94000000e+02,   2.90000000e+02,   3.04000000e+02,
          3.30000000e+02,   3.76000000e+02,   3.88000000e+02,
          3.88000000e+02,   4.34000000e+02,   4.34000000e+02,
          4.24000000e+02,   4.88000000e+02],
       [  2.80000000e+01,   1.06000000e+02,   1.12000000e+02,
          1.20000000e+02,   1.50000000e+02,   1.88000000e+02,
          1.88000000e+02,   2.08000000e+02,   2.48000000e+02,
          2.96000000e+02,   3.16000000e+02,   3.50000000e+02,
          3.36000000e+02,   3.50000000e+02,   3.78000000e+02,
          4.52000000e+02,   4.18000000e+02,   5.22000000e+02,
          4.30000000e+02,   5.28000000e+02],
       [  4.20000000e+01,   7.60000000e+01,   1.20000000e+02,
          1.54000000e+02,   1.50000000e+02,   1.66000000e+02,
          2.38000000e+02,   2.20000000e+02,   2.28000000e+02,
          2.78000000e+02,   3.06000000e+02,   3.30000000e+02,
          3.18000000e+02,   3.62000000e+02,   3.96000000e+02,
          4.56000000e+02,   4.18000000e+02,   4.24000000e+02,
          4.76000000e+02,   4.68000000e+02],
       [  4.20000000e+01,   5.40000000e+01,   1.40000000e+02,
          1.44000000e+02,   1.72000000e+02,   1.62000000e+02,
          2.18000000e+02,   2.16000000e+02,   2.38000000e+02,
          3.38000000e+02,   3.18000000e+02,   3.14000000e+02,
          3.26000000e+02,   3.68000000e+02,   4.00000000e+02,
          3.82000000e+02,   4.16000000e+02,   4.06000000e+02,
          4.34000000e+02,   4.64000000e+02],
       [  3.60000000e+01,   9.60000000e+01,   9.00000000e+01,
          1.30000000e+02,   1.74000000e+02,   1.80000000e+02,
          2.28000000e+02,   2.22000000e+02,   2.68000000e+02,
          2.38000000e+02,   2.86000000e+02,   3.08000000e+02,
          3.52000000e+02,   3.28000000e+02,   3.76000000e+02,
          4.26000000e+02,   3.98000000e+02,   4.28000000e+02,
          4.98000000e+02,   4.92000000e+02],
       [  2.00000000e+01,   9.60000000e+01,   9.60000000e+01,
          1.44000000e+02,   1.62000000e+02,   2.12000000e+02,
          2.28000000e+02,   2.10000000e+02,   2.64000000e+02,
          2.60000000e+02,   3.22000000e+02,   3.22000000e+02,
          3.74000000e+02,   3.54000000e+02,   3.82000000e+02,
          4.38000000e+02,   4.20000000e+02,   4.68000000e+02,
          4.30000000e+02,   4.42000000e+02],
       [  2.80000000e+01,   7.00000000e+01,   9.00000000e+01,
          1.26000000e+02,   1.54000000e+02,   1.78000000e+02,
          1.82000000e+02,   1.76000000e+02,   2.46000000e+02,
          2.96000000e+02,   3.12000000e+02,   3.02000000e+02,
          3.08000000e+02,   3.54000000e+02,   3.76000000e+02,
          4.18000000e+02,   3.74000000e+02,   4.26000000e+02,
          4.56000000e+02,   4.48000000e+02],
       [  2.60000000e+01,   8.00000000e+01,   1.06000000e+02,
          1.28000000e+02,   1.50000000e+02,   1.76000000e+02,
          2.08000000e+02,   2.62000000e+02,   2.32000000e+02,
          2.86000000e+02,   2.78000000e+02,   2.96000000e+02,
          3.56000000e+02,   3.38000000e+02,   3.76000000e+02,
          3.68000000e+02,   4.04000000e+02,   4.36000000e+02,
          4.42000000e+02,   4.08000000e+02],
       [  2.60000000e+01,   5.80000000e+01,   1.02000000e+02,
          1.06000000e+02,   1.22000000e+02,   1.74000000e+02,
          2.14000000e+02,   2.36000000e+02,   2.40000000e+02,
          2.42000000e+02,   2.78000000e+02,   2.60000000e+02,
          3.42000000e+02,   3.14000000e+02,   3.72000000e+02,
          3.74000000e+02,   4.12000000e+02,   4.24000000e+02,
          3.92000000e+02,   4.88000000e+02],
       [  2.00000000e+01,   7.40000000e+01,   1.02000000e+02,
          1.36000000e+02,   1.76000000e+02,   1.46000000e+02,
          1.38000000e+02,   2.04000000e+02,   2.18000000e+02,
          2.50000000e+02,   2.64000000e+02,   2.94000000e+02,
          3.86000000e+02,   3.82000000e+02,   3.44000000e+02,
          3.76000000e+02,   3.92000000e+02,   4.78000000e+02,
          4.78000000e+02,   4.84000000e+02],
       [  3.00000000e+01,   5.00000000e+01,   1.04000000e+02,
          1.18000000e+02,   1.46000000e+02,   1.38000000e+02,
          1.66000000e+02,   1.96000000e+02,   2.06000000e+02,
          2.74000000e+02,   3.56000000e+02,   3.02000000e+02,
          3.46000000e+02,   3.30000000e+02,   3.76000000e+02,
          4.06000000e+02,   3.94000000e+02,   4.14000000e+02,
          4.62000000e+02,   4.82000000e+02],
       [  3.20000000e+01,   5.20000000e+01,   1.08000000e+02,
          9.40000000e+01,   1.20000000e+02,   1.46000000e+02,
          2.12000000e+02,   2.10000000e+02,   2.28000000e+02,
          2.54000000e+02,   2.90000000e+02,   2.98000000e+02,
          3.18000000e+02,   3.88000000e+02,   3.36000000e+02,
          4.16000000e+02,   4.64000000e+02,   4.52000000e+02,
          4.08000000e+02,   4.66000000e+02],
       [  6.00000000e+00,   5.80000000e+01,   8.40000000e+01,
          1.24000000e+02,   1.30000000e+02,   1.48000000e+02,
          1.80000000e+02,   1.66000000e+02,   2.56000000e+02,
          2.38000000e+02,   3.00000000e+02,   2.36000000e+02,
          3.42000000e+02,   3.50000000e+02,   3.52000000e+02,
          3.20000000e+02,   4.48000000e+02,   4.92000000e+02,
          4.56000000e+02,   4.38000000e+02]])

In [ ]:


In [23]:
# Getting back the objects:
with open('../output/DR12Qbin4.pkl') as f:  # Python 3: open(..., 'rb')
    dat = pickle.load(f)
dat


Out[23]:
array([[  3.08883900e+00,   1.03000000e-04,   3.49280000e-01],
       [  2.90644800e+00,   2.52000000e-04,   2.80095000e-01],
       [  2.87937200e+00,   3.61000000e-04,  -4.85800000e-03],
       ..., 
       [  3.16691100e+00,   6.28303300e+00,   6.24115000e-01],
       [  3.06474900e+00,   6.28308500e+00,   7.52100000e-03],
       [  3.11339100e+00,   6.28317300e+00,   6.05993000e-01]])

Read the data file (taken from http://cosmo.nyu.edu/~eak306/SDSS-LRG.html ) converted to ascii with comoving distance etc. in V01 reading from pkl files for faster read


In [24]:
# Getting back the objects:
with open('../output/randDR12Qbin4.pkl') as f:  # Python 3: open(..., 'rb')
    datR = pickle.load(f)
datR


Out[24]:
array([[ 3.088839,  3.509669,  0.526771],
       [ 2.906448,  5.746496,  0.024581],
       [ 2.879372,  2.298062,  0.193726],
       ..., 
       [ 3.166911,  0.098733,  0.085691],
       [ 3.064749,  6.228745,  0.393404],
       [ 3.113391,  5.734536,  0.043476]])

In [25]:
dr2d=np.zeros((20,20))

In [26]:
%%time
dist0=d.cdist([dat[0],],datR,APdz)[0]
dist1=d.cdist([dat[0],],datR,APzdth)[0]
print np.histogram2d(dist0, dist1,bins=20, range=rng)


(array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
         0.,  0.,  0.,  0.,  0.,  0.,  0.]]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]), array([ 0.   ,  0.001,  0.002,  0.003,  0.004,  0.005,  0.006,  0.007,
        0.008,  0.009,  0.01 ,  0.011,  0.012,  0.013,  0.014,  0.015,
        0.016,  0.017,  0.018,  0.019,  0.02 ]))
CPU times: user 343 ms, sys: 48.1 ms, total: 391 ms
Wall time: 353 ms

In [27]:
%%time
for i in tqdm(xrange(len(dat))):
    dist0=d.cdist([dat[i],],datR,APdz)[0]
    dist1=d.cdist([dat[i],],datR,APzdth)[0]
    dr2d+=np.histogram2d(dist0, dist1, bins=20,range=rng)[0]
print dr2d


100%|██████████| 42945/42945 [3:56:40<00:00,  3.13it/s]  
[[  1.   2.   1.   8.   4.  10.   8.  20.  11.  10.  12.  11.  18.  19.
   15.  16.  16.  28.  21.  31.]
 [  1.   3.   6.   2.   6.   5.   8.  10.  12.  13.  12.  11.  19.  19.
   28.  17.  30.  28.  23.  20.]
 [  2.   2.   2.   6.   4.   7.   6.   9.  16.  13.  14.  14.  21.  21.
   23.  22.  29.  23.  21.  31.]
 [  2.   3.   3.   9.  12.   7.  14.   5.  14.  16.  17.  17.  21.  17.
   14.  25.  22.  17.  27.  27.]
 [  0.   0.   2.   4.   5.   8.   8.   6.  12.  17.  18.  13.  14.  16.
   18.  31.  23.  17.  29.  17.]
 [  0.   1.   2.   2.   1.   7.  10.   9.  18.  10.   8.  15.  12.  22.
   14.  13.  20.  21.  23.  29.]
 [  0.   2.   1.   6.   3.   9.   4.  13.  11.   9.   6.   9.  20.  17.
   23.  23.  26.  33.  26.  20.]
 [  0.   2.   3.   3.   6.   8.   9.  10.  11.   7.  18.  19.   9.  19.
   19.  20.  20.  22.  18.  24.]
 [  0.   0.   3.   5.   6.   6.  11.  10.  17.   8.  12.  13.  11.  25.
   24.  14.  19.  26.  19.  21.]
 [  3.   2.   6.   5.   7.   5.  11.   7.  14.  11.  15.  16.  20.  22.
   19.  19.  27.  21.  20.  31.]
 [  0.   3.   1.   4.   6.   6.  12.  11.  12.   8.  22.  12.  21.  21.
   28.  17.  20.  19.  17.  24.]
 [  0.   2.   3.   8.   4.   8.  11.  13.  13.  14.  16.  15.  15.  12.
   18.  23.  30.  24.  25.  25.]
 [  0.   0.   2.   2.   8.   4.  11.  12.  19.   8.  22.  17.  18.  11.
   19.  18.  27.  16.  25.  28.]
 [  0.   2.   7.   9.   5.  11.   6.  18.  13.  14.  15.  18.  16.  20.
   18.  22.  24.  22.  23.  21.]
 [  1.   0.   6.   5.   5.   6.   9.   7.   9.   9.   9.  25.  11.  19.
   19.  13.  35.  22.  39.  27.]
 [  2.   6.   6.  10.   5.   8.  13.   6.  11.  10.   9.  16.  14.  18.
   17.  25.  20.  28.  33.  22.]
 [  4.   5.   6.   3.   7.   9.   9.  12.  14.  15.  17.  18.  18.  18.
   10.  21.  21.  29.  23.  20.]
 [  0.   2.   4.   8.   5.  11.  12.  14.  13.  15.  11.  12.   9.  19.
   21.  26.  27.  24.  42.  17.]
 [  1.   2.   1.   4.   6.  11.   5.   9.   8.  12.   5.  16.  11.  20.
   15.  19.  22.  28.  21.  19.]
 [  1.   2.   1.   5.   4.   3.  13.   9.   5.   7.  20.  12.  17.  11.
   20.  19.  18.  26.  20.  15.]]
CPU times: user 3h 53min 36s, sys: 11min 47s, total: 4h 5min 23s
Wall time: 3h 56min 40s


In [28]:
with open('DR12QDRbin4.pkl','w') as f:
    pickle.dump(dr2d,f)    
dr2d


Out[28]:
array([[  1.,   2.,   1.,   8.,   4.,  10.,   8.,  20.,  11.,  10.,  12.,
         11.,  18.,  19.,  15.,  16.,  16.,  28.,  21.,  31.],
       [  1.,   3.,   6.,   2.,   6.,   5.,   8.,  10.,  12.,  13.,  12.,
         11.,  19.,  19.,  28.,  17.,  30.,  28.,  23.,  20.],
       [  2.,   2.,   2.,   6.,   4.,   7.,   6.,   9.,  16.,  13.,  14.,
         14.,  21.,  21.,  23.,  22.,  29.,  23.,  21.,  31.],
       [  2.,   3.,   3.,   9.,  12.,   7.,  14.,   5.,  14.,  16.,  17.,
         17.,  21.,  17.,  14.,  25.,  22.,  17.,  27.,  27.],
       [  0.,   0.,   2.,   4.,   5.,   8.,   8.,   6.,  12.,  17.,  18.,
         13.,  14.,  16.,  18.,  31.,  23.,  17.,  29.,  17.],
       [  0.,   1.,   2.,   2.,   1.,   7.,  10.,   9.,  18.,  10.,   8.,
         15.,  12.,  22.,  14.,  13.,  20.,  21.,  23.,  29.],
       [  0.,   2.,   1.,   6.,   3.,   9.,   4.,  13.,  11.,   9.,   6.,
          9.,  20.,  17.,  23.,  23.,  26.,  33.,  26.,  20.],
       [  0.,   2.,   3.,   3.,   6.,   8.,   9.,  10.,  11.,   7.,  18.,
         19.,   9.,  19.,  19.,  20.,  20.,  22.,  18.,  24.],
       [  0.,   0.,   3.,   5.,   6.,   6.,  11.,  10.,  17.,   8.,  12.,
         13.,  11.,  25.,  24.,  14.,  19.,  26.,  19.,  21.],
       [  3.,   2.,   6.,   5.,   7.,   5.,  11.,   7.,  14.,  11.,  15.,
         16.,  20.,  22.,  19.,  19.,  27.,  21.,  20.,  31.],
       [  0.,   3.,   1.,   4.,   6.,   6.,  12.,  11.,  12.,   8.,  22.,
         12.,  21.,  21.,  28.,  17.,  20.,  19.,  17.,  24.],
       [  0.,   2.,   3.,   8.,   4.,   8.,  11.,  13.,  13.,  14.,  16.,
         15.,  15.,  12.,  18.,  23.,  30.,  24.,  25.,  25.],
       [  0.,   0.,   2.,   2.,   8.,   4.,  11.,  12.,  19.,   8.,  22.,
         17.,  18.,  11.,  19.,  18.,  27.,  16.,  25.,  28.],
       [  0.,   2.,   7.,   9.,   5.,  11.,   6.,  18.,  13.,  14.,  15.,
         18.,  16.,  20.,  18.,  22.,  24.,  22.,  23.,  21.],
       [  1.,   0.,   6.,   5.,   5.,   6.,   9.,   7.,   9.,   9.,   9.,
         25.,  11.,  19.,  19.,  13.,  35.,  22.,  39.,  27.],
       [  2.,   6.,   6.,  10.,   5.,   8.,  13.,   6.,  11.,  10.,   9.,
         16.,  14.,  18.,  17.,  25.,  20.,  28.,  33.,  22.],
       [  4.,   5.,   6.,   3.,   7.,   9.,   9.,  12.,  14.,  15.,  17.,
         18.,  18.,  18.,  10.,  21.,  21.,  29.,  23.,  20.],
       [  0.,   2.,   4.,   8.,   5.,  11.,  12.,  14.,  13.,  15.,  11.,
         12.,   9.,  19.,  21.,  26.,  27.,  24.,  42.,  17.],
       [  1.,   2.,   1.,   4.,   6.,  11.,   5.,   9.,   8.,  12.,   5.,
         16.,  11.,  20.,  15.,  19.,  22.,  28.,  21.,  19.],
       [  1.,   2.,   1.,   5.,   4.,   3.,  13.,   9.,   5.,   7.,  20.,
         12.,  17.,  11.,  20.,  19.,  18.,  26.,  20.,  15.]])

In [ ]: