NUMPY EXERCISE
from PadhAI homework
padiai_Numpy_exercises
In [3]:
import numpy as np

Numpy Exercises - Week-8

my experiments with exercise

In [4]:
scores = np.loadtxt("/content/cric_data.tsv", skiprows = 1)

split dataset based on player

In [133]:
sac = np.loadtxt("/content/cric_data.tsv", skiprows = 1, usecols = 1)
In [6]:
rah = np.loadtxt("/content/cric_data.tsv", skiprows = 1, usecols = 2)
In [7]:
ind = np.loadtxt("/content/cric_data.tsv", skiprows = 1, usecols = 3)
In [ ]:
scores
In [ ]:
np.min(scores)
Out[ ]:
0.0
In [ ]:
np.mean(scores)
Out[ ]:
101.18333333333334
In [ ]:
np.median(scores)
Out[ ]:
69.5

Inter quartile range for datasets

In [ ]:
iqr = np.percentile(scores, 75) - np.percentile(scores, 25)
In [ ]:
print(iqr)
153.0
In [ ]:
iqr = np.percentile(scores, [75, 25])
In [ ]:
print(iqr)
[171.  18.]
In [ ]:
print(iqr[0] - iqr[1])
153.0
In [ ]:
np.mean(sac)
Out[ ]:
39.87555555555556
In [ ]:
np.mean(rah)
Out[ ]:
32.062222222222225
In [ ]:
np.mean(ind)
Out[ ]:
220.79555555555555
In [ ]:
sac_iqr = np.percentile(sac, [75, 25])
In [ ]:
sach_iqr = sac_iqr[0] - sac_iqr[1]
In [ ]:
print(sach_iqr)
57.0
In [ ]:
np.median(sac)
Out[ ]:
27.0
In [ ]:
print(np.percentile(sac, 50))
27.0
In [ ]:
print(np.mean(rah))
32.062222222222225
In [ ]:
print(np.median(rah))
22.0
In [ ]:
rah_iqrs = np.percentile(rah, [75, 25])
In [ ]:
print(rah_iqrs[0] - rah_iqrs[1])
46.0

Q2. histogram for India dataset

In [ ]:
np.histogram(sac, 10)
Out[ ]:
(array([99, 36, 28, 16, 11, 17,  8,  8,  1,  1]),
 array([  0. ,  18.6,  37.2,  55.8,  74.4,  93. , 111.6, 130.2, 148.8,
        167.4, 186. ]))
In [ ]:
np.histogram(rah, 4)
Out[ ]:
(array([147,  57,  18,   3]), array([  0.  ,  38.25,  76.5 , 114.75, 153.  ]))
In [ ]:
np.histogram(ind, 20)
Out[ ]:
(array([ 6,  2,  2,  1,  7, 17, 20, 26, 41, 30, 19, 22, 15,  6,  4,  3,  2,
         0,  1,  1]),
 array([  0.  ,  24.95,  49.9 ,  74.85,  99.8 , 124.75, 149.7 , 174.65,
        199.6 , 224.55, 249.5 , 274.45, 299.4 , 324.35, 349.3 , 374.25,
        399.2 , 424.15, 449.1 , 474.05, 499.  ]))
In [ ]:
np.split?

Q3. split array into groups (in this case - 25) on sacs data

In [ ]:
np.split(sac, 5)
Out[ ]:
[array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
          4.,   7.,  37.,  14.,   0.,   4.,   0.,  21.,   1.,  62.,   0.,
        138.,  38.,   2.,  46.,  65.,   0.,  39.,  48., 141.,  62.,  12.,
          1.,  41.,  11.,   3., 186.,  11.,  27.,  27.,  51.,  18.,  32.,
        146.]),
 array([  5.,  45., 141.,  12.,  65.,  27.,   7.,  16.,   2.,  28.,   6.,
        123., 120.,   7.,   3.,   0.,  81.,   2.,  54., 122.,   4.,  14.,
          0., 100.,  15.,   0.,  57.,  99.,  37.,  38.,  32.,  21.,  32.,
         40.,   0.,   5.,   8.,   5.,   0.,  50.,  30.,  37.,  89.,   4.,
         98.]),
 array([ 83.,  93.,   0.,  52., 152.,   1.,   8.,  93.,  45.,  26.,   0.,
          1.,   0.,  16.,  47.,  89.,   3.,   1.,  53.,  16.,   0.,  81.,
         14.,  78.,   6., 105., 122.,   9.,   8.,  28.,  35.,  69.,  13.,
         97.,  93.,   2.,  36.,  39.,   2.,  29.,  12.,  19.,  34.,   2.,
        100.]),
 array([ 44.,  82.,   0.,  79.,   6.,   9.,   8.,  23.,  93.,  35.,  63.,
         74.,   8., 117.,  39.,  49.,  64.,  43.,  72.,   5.,  17.,   0.,
         65.,  20., 141.,  28.,  44.,  27.,  60.,  68.,   3., 139.,  31.,
          2.,  44.,  47.,   6.,  17.,  35.,  88., 114.,   7., 127.,   0.,
         45.]),
 array([ 33., 110., 146.,   7.,  25.,   9.,   2.,  11.,  17.,  14.,   1.,
         45.,  94.,  28.,   4.,  62.,   1.,   9.,  67.,  10.,  99.,  55.,
          0.,   1., 101.,   2.,   1.,  16., 140.,  23., 113.,  10.,   1.,
         41.,   1.,  28.,   2.,  22.,  29.,   1.,  25., 102.,   0.,  27.,
         40.])]
In [ ]:
sac25grp = np.split(sac, 25)
In [ ]:
sac25grp
Out[ ]:
[array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.]),
 array([85., 18.,  4.,  7., 37., 14.,  0.,  4.,  0.]),
 array([ 21.,   1.,  62.,   0., 138.,  38.,   2.,  46.,  65.]),
 array([  0.,  39.,  48., 141.,  62.,  12.,   1.,  41.,  11.]),
 array([  3., 186.,  11.,  27.,  27.,  51.,  18.,  32., 146.]),
 array([  5.,  45., 141.,  12.,  65.,  27.,   7.,  16.,   2.]),
 array([ 28.,   6., 123., 120.,   7.,   3.,   0.,  81.,   2.]),
 array([ 54., 122.,   4.,  14.,   0., 100.,  15.,   0.,  57.]),
 array([99., 37., 38., 32., 21., 32., 40.,  0.,  5.]),
 array([ 8.,  5.,  0., 50., 30., 37., 89.,  4., 98.]),
 array([ 83.,  93.,   0.,  52., 152.,   1.,   8.,  93.,  45.]),
 array([26.,  0.,  1.,  0., 16., 47., 89.,  3.,  1.]),
 array([ 53.,  16.,   0.,  81.,  14.,  78.,   6., 105., 122.]),
 array([ 9.,  8., 28., 35., 69., 13., 97., 93.,  2.]),
 array([ 36.,  39.,   2.,  29.,  12.,  19.,  34.,   2., 100.]),
 array([44., 82.,  0., 79.,  6.,  9.,  8., 23., 93.]),
 array([ 35.,  63.,  74.,   8., 117.,  39.,  49.,  64.,  43.]),
 array([ 72.,   5.,  17.,   0.,  65.,  20., 141.,  28.,  44.]),
 array([ 27.,  60.,  68.,   3., 139.,  31.,   2.,  44.,  47.]),
 array([  6.,  17.,  35.,  88., 114.,   7., 127.,   0.,  45.]),
 array([ 33., 110., 146.,   7.,  25.,   9.,   2.,  11.,  17.]),
 array([14.,  1., 45., 94., 28.,  4., 62.,  1.,  9.]),
 array([ 67.,  10.,  99.,  55.,   0.,   1., 101.,   2.,   1.]),
 array([ 16., 140.,  23., 113.,  10.,   1.,  41.,   1.,  28.]),
 array([  2.,  22.,  29.,   1.,  25., 102.,   0.,  27.,  40.])]
In [ ]:
np.median(sac25grp[0])
Out[ ]:
18.0
In [ ]:
np.median(sac25grp[1])
Out[ ]:
7.0
In [ ]:
print(np.mean(sac25grp))
39.87555555555556
In [ ]:
print(np.mean(sac25grp[0:24]))
40.388888888888886

to get mean for each element in the array that is split into 25 subgroups - without traditional for loop

In [ ]:
sac25grp_mean = [np.mean(i) for i in sac25grp]
In [ ]:
sac25grp_mean
Out[ ]:
[46.44444444444444,
 18.77777777777778,
 41.44444444444444,
 39.44444444444444,
 55.666666666666664,
 35.55555555555556,
 41.111111111111114,
 40.666666666666664,
 33.77777777777778,
 35.666666666666664,
 58.55555555555556,
 20.333333333333332,
 52.77777777777778,
 39.333333333333336,
 30.333333333333332,
 38.22222222222222,
 54.666666666666664,
 43.55555555555556,
 46.77777777777778,
 48.77777777777778,
 40.0,
 28.666666666666668,
 37.333333333333336,
 41.44444444444444,
 27.555555555555557]
In [ ]:
print([np.mean(i) for i in sac25grp])
[46.44444444444444, 18.77777777777778, 41.44444444444444, 39.44444444444444, 55.666666666666664, 35.55555555555556, 41.111111111111114, 40.666666666666664, 33.77777777777778, 35.666666666666664, 58.55555555555556, 20.333333333333332, 52.77777777777778, 39.333333333333336, 30.333333333333332, 38.22222222222222, 54.666666666666664, 43.55555555555556, 46.77777777777778, 48.77777777777778, 40.0, 28.666666666666668, 37.333333333333336, 41.44444444444444, 27.555555555555557]
In [ ]:
print([np.median(i) for i in sac25grp])
[18.0, 7.0, 38.0, 39.0, 27.0, 16.0, 7.0, 15.0, 32.0, 30.0, 52.0, 3.0, 53.0, 28.0, 29.0, 23.0, 49.0, 28.0, 44.0, 35.0, 17.0, 14.0, 10.0, 23.0, 25.0]
In [ ]:
rah25grp = np.split(rah, 25)
In [ ]:
rah25grp
Out[ ]:
[array([ 78.,  62.,  85.,  24.,  17., 104.,  76.,  74.,  60.]),
 array([ 12.,  63., 107.,  76.,   4.,   5.,  33.,   7.,   0.]),
 array([ 36.,  66.,   0., 123.,  39.,   9.,  11.,  14.,   0.]),
 array([ 0., 26.,  4., 48.,  7., 73., 86., 32., 82.]),
 array([ 25., 153.,  26.,   1.,   6.,   3.,   1.,  39.,  30.]),
 array([32., 84., 36., 31.,  0., 47., 13., 49., 28.]),
 array([  0.,  28.,  19.,  13.,  14.,  11., 103.,  43.,   5.]),
 array([ 5., 15.,  0.,  5., 30.,  4., 53., 60.,  7.]),
 array([74., 71., 54., 13., 69., 33., 29.,  2.,  8.]),
 array([ 36.,  51.,   8.,  62.,   0.,  22.,  39., 104.,  44.]),
 array([ 1.,  2.,  0., 17.,  0., 14., 62., 15., 68.]),
 array([17.,  0., 22., 25., 29., 60., 34., 65.,  3.]),
 array([ 7., 16.,  0.,  4., 53.,  5., 23., 82.,  3.]),
 array([ 0., 20., 21., 80., 22.,  8., 18., 24., 50.]),
 array([ 1., 42., 61.,  0.,  6., 64.,  9., 46.,  0.]),
 array([ 0.,  0.,  0., 13.,  0., 72., 12., 38., 79.]),
 array([18., 16., 16., 56., 21., 58.,  8.,  0.,  0.]),
 array([ 7., 13., 77., 29., 20., 90., 26., 54., 17.]),
 array([78., 57., 59., 10., 15., 54., 52.,  9.,  0.]),
 array([18.,  3.,  4.,  6., 16., 71., 64.,  7., 61.]),
 array([ 1.,  7.,  0.,  0., 26., 19., 63.,  3., 46.]),
 array([31., 12., 49.,  4., 99., 47., 56., 73., 74.]),
 array([ 31.,  29.,  92.,   1.,   0.,  30.,  16., 145.,  22.]),
 array([ 31., 104.,  20.,  13.,  52.,  31.,  12.,  50.,   3.]),
 array([ 9., 53., 49., 21., 14., 50., 22.,  0.,  0.])]
In [ ]:
rah25grp_median = [np.median(i) for i in rah25grp]
In [ ]:
rah25grp_median
Out[ ]:
[74.0,
 12.0,
 14.0,
 32.0,
 25.0,
 32.0,
 14.0,
 7.0,
 33.0,
 39.0,
 14.0,
 25.0,
 7.0,
 21.0,
 9.0,
 12.0,
 16.0,
 26.0,
 52.0,
 16.0,
 7.0,
 49.0,
 29.0,
 31.0,
 21.0]
In [ ]:
sac
Out[ ]:
array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
         4.,   7.,  37.,  14.,   0.,   4.,   0.,  21.,   1.,  62.,   0.,
       138.,  38.,   2.,  46.,  65.,   0.,  39.,  48., 141.,  62.,  12.,
         1.,  41.,  11.,   3., 186.,  11.,  27.,  27.,  51.,  18.,  32.,
       146.,   5.,  45., 141.,  12.,  65.,  27.,   7.,  16.,   2.,  28.,
         6., 123., 120.,   7.,   3.,   0.,  81.,   2.,  54., 122.,   4.,
        14.,   0., 100.,  15.,   0.,  57.,  99.,  37.,  38.,  32.,  21.,
        32.,  40.,   0.,   5.,   8.,   5.,   0.,  50.,  30.,  37.,  89.,
         4.,  98.,  83.,  93.,   0.,  52., 152.,   1.,   8.,  93.,  45.,
        26.,   0.,   1.,   0.,  16.,  47.,  89.,   3.,   1.,  53.,  16.,
         0.,  81.,  14.,  78.,   6., 105., 122.,   9.,   8.,  28.,  35.,
        69.,  13.,  97.,  93.,   2.,  36.,  39.,   2.,  29.,  12.,  19.,
        34.,   2., 100.,  44.,  82.,   0.,  79.,   6.,   9.,   8.,  23.,
        93.,  35.,  63.,  74.,   8., 117.,  39.,  49.,  64.,  43.,  72.,
         5.,  17.,   0.,  65.,  20., 141.,  28.,  44.,  27.,  60.,  68.,
         3., 139.,  31.,   2.,  44.,  47.,   6.,  17.,  35.,  88., 114.,
         7., 127.,   0.,  45.,  33., 110., 146.,   7.,  25.,   9.,   2.,
        11.,  17.,  14.,   1.,  45.,  94.,  28.,   4.,  62.,   1.,   9.,
        67.,  10.,  99.,  55.,   0.,   1., 101.,   2.,   1.,  16., 140.,
        23., 113.,  10.,   1.,  41.,   1.,  28.,   2.,  22.,  29.,   1.,
        25., 102.,   0.,  27.,  40.])
In [ ]:
sacgr100 = [sac[i] for i in sac if sac>100]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-48-40b7349abd15> in <module>()
----> 1 sacgr100 = [sac[i] for i in sac if sac>100]

<ipython-input-48-40b7349abd15> in <listcomp>(.0)
----> 1 sacgr100 = [sac[i] for i in sac if sac>100]

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
In [ ]:
sacgr100
In [ ]:
sacgr100 = sac > 100
In [ ]:
sacgr100
In [ ]:

from PADHAI solutions video

Dataset for the exercise questions

image.png

Q1. Find the mean, median, IQR for Sachin, Rahul and India

In [8]:
import numpy as np
In [9]:
cric_data = np.loadtxt("/content/cric_data.tsv", skiprows = 1)
In [10]:
cric_data.shape
Out[10]:
(225, 4)
In [11]:
cric_data = cric_data[:, [1,2,3]]
In [13]:
cric_data
Out[13]:
array([[100.,  78., 342.],
       [ 11.,  62., 191.],
       [  8.,  85., 252.],
       [ 71.,  24., 307.],
       [104.,  17., 229.],
       [ 18., 104., 246.],
       [  8.,  76., 226.],
       [ 86.,  74., 288.],
       [ 12.,  60., 216.],
       [ 85.,  12., 224.],
       [ 18.,  63., 161.],
       [  4., 107., 276.],
       [  7.,  76., 283.],
       [ 37.,   4., 297.],
       [ 14.,   5., 139.],
       [  0.,  33., 224.],
       [  4.,   7., 178.],
       [  0.,   0.,   0.],
       [ 21.,  36., 193.],
       [  1.,  66., 231.],
       [ 62.,   0., 134.],
       [  0., 123., 246.],
       [138.,  39., 299.],
       [ 38.,   9., 242.],
       [  2.,  11., 214.],
       [ 46.,  14., 152.],
       [ 65.,   0., 104.],
       [  0.,   0.,   4.],
       [ 39.,  26., 155.],
       [ 48.,   4., 168.],
       [141.,  48., 282.],
       [ 62.,   7., 228.],
       [ 12.,  73., 231.],
       [  1.,  86., 238.],
       [ 41.,  32., 255.],
       [ 11.,  82., 273.],
       [  3.,  25., 143.],
       [186., 153., 345.],
       [ 11.,  26., 134.],
       [ 27.,   1., 292.],
       [ 27.,   6., 299.],
       [ 51.,   3., 233.],
       [ 18.,   1., 332.],
       [ 32.,  39., 276.],
       [146.,  30., 264.],
       [  5.,  32., 213.],
       [ 45.,  84., 224.],
       [141.,  36., 306.],
       [ 12.,  31., 259.],
       [ 65.,   0., 141.],
       [ 27.,  47., 155.],
       [  7.,  13., 183.],
       [ 16.,  49., 309.],
       [  2.,  28., 208.],
       [ 28.,   0., 124.],
       [  6.,  28., 208.],
       [123.,  19., 305.],
       [120.,  13., 273.],
       [  7.,  14., 186.],
       [  3.,  11., 163.],
       [  0., 103., 239.],
       [ 81.,  43., 274.],
       [  2.,   5., 182.],
       [ 54.,   5., 256.],
       [122.,  15., 227.],
       [  4.,   0., 157.],
       [ 14.,   5., 353.],
       [  0.,  30., 271.],
       [100.,   4., 211.],
       [ 15.,  53., 141.],
       [  0.,  60., 243.],
       [ 57.,   7., 499.],
       [ 99.,  74., 229.],
       [ 37.,  71., 234.],
       [ 38.,  54., 259.],
       [ 32.,  13., 242.],
       [ 21.,  69., 223.],
       [ 32.,  33., 184.],
       [ 40.,  29., 125.],
       [  0.,   2., 195.],
       [  5.,   8., 154.],
       [  8.,  36., 142.],
       [  5.,  51., 197.],
       [  0.,   8., 213.],
       [ 50.,  62., 256.],
       [ 30.,   0., 197.],
       [ 37.,  22., 177.],
       [ 89.,  39., 167.],
       [  4., 104., 366.],
       [ 98.,  44., 269.],
       [ 83.,   1., 292.],
       [ 93.,   2., 218.],
       [  0.,   0.,   0.],
       [ 52.,  17., 199.],
       [152.,   0., 319.],
       [  1.,  14., 245.],
       [  8.,  62., 274.],
       [ 93.,  15., 208.],
       [ 45.,  68., 201.],
       [ 26.,  17., 275.],
       [  0.,   0., 134.],
       [  1.,  22.,  68.],
       [  0.,  25., 149.],
       [ 16.,  29., 216.],
       [ 47.,  60., 407.],
       [ 89.,  34., 302.],
       [  3.,  65., 197.],
       [  1.,   3., 222.],
       [ 53.,   7., 224.],
       [ 16.,  16., 321.],
       [  0.,   0.,   0.],
       [ 81.,   4., 162.],
       [ 14.,  53., 221.],
       [ 78.,   5., 204.],
       [  6.,  23., 213.],
       [105.,  82., 286.],
       [122.,   3., 272.],
       [  9.,   0., 382.],
       [  8.,  20., 229.],
       [ 28.,  21., 175.],
       [ 35.,  80., 360.],
       [ 69.,  22., 256.],
       [ 13.,   8., 165.],
       [ 97.,  18., 335.],
       [ 93.,  24., 188.],
       [  2.,  50., 146.],
       [ 36.,   1., 113.],
       [ 39.,  42., 241.],
       [  2.,  61., 211.],
       [ 29.,   0., 225.],
       [ 12.,   6.,  35.],
       [ 19.,  64., 163.],
       [ 34.,   9., 200.],
       [  2.,  46., 176.],
       [100.,   0., 269.],
       [ 44.,   0., 284.],
       [ 82.,   0., 175.],
       [  0.,   0.,  27.],
       [ 79.,  13., 282.],
       [  6.,   0., 141.],
       [  9.,  72., 229.],
       [  8.,  12., 213.],
       [ 23.,  38., 205.],
       [ 93.,  79., 279.],
       [ 35.,  18.,  88.],
       [ 63.,  16., 284.],
       [ 74.,  16., 207.],
       [  8.,  56., 224.],
       [117.,  21., 204.],
       [ 39.,  58., 280.],
       [ 49.,   8., 197.],
       [ 64.,   0., 205.],
       [ 43.,   0., 230.],
       [ 72.,   7., 323.],
       [  5.,  13., 209.],
       [ 17.,  77., 210.],
       [  0.,  29., 162.],
       [ 65.,  20., 272.],
       [ 20.,  90., 251.],
       [141.,  26., 286.],
       [ 28.,  54., 228.],
       [ 44.,  17., 148.],
       [ 27.,  78., 272.],
       [ 60.,  57., 309.],
       [ 68.,  59., 202.],
       [  3.,  10., 136.],
       [139.,  15., 281.],
       [ 31.,  54., 314.],
       [  2.,  52., 419.],
       [ 44.,   9., 229.],
       [ 47.,   0., 133.],
       [  6.,  18., 228.],
       [ 17.,   3., 143.],
       [ 35.,   4., 116.],
       [ 88.,   6., 194.],
       [114.,  16., 249.],
       [  7.,  71., 319.],
       [127.,  64., 205.],
       [  0.,   7., 191.],
       [ 45.,  61., 213.],
       [ 33.,   1., 104.],
       [110.,   7., 210.],
       [146.,   0., 392.],
       [  7.,   0.,  57.],
       [ 25.,  26., 213.],
       [  9.,  19., 158.],
       [  2.,  63., 163.],
       [ 11.,   3., 166.],
       [ 17.,  46., 164.],
       [ 14.,  31., 238.],
       [  1.,  12., 118.],
       [ 45.,  49., 189.],
       [ 94.,   4., 346.],
       [ 28.,  99., 390.],
       [  4.,  47., 319.],
       [ 62.,  56., 276.],
       [  1.,  73., 324.],
       [  9.,  74., 213.],
       [ 67.,  31., 207.],
       [ 10.,  29., 158.],
       [ 99.,  92., 304.],
       [ 55.,   1., 199.],
       [  0.,   0.,   0.],
       [  1.,  30., 195.],
       [101.,  16., 207.],
       [  2., 145., 352.],
       [  1.,  22., 225.],
       [ 16.,  31., 236.],
       [140., 104., 301.],
       [ 23.,  20., 136.],
       [113.,  13., 327.],
       [ 10.,  52., 296.],
       [  1.,  31., 176.],
       [ 41.,  12., 201.],
       [  1.,  50., 171.],
       [ 28.,   3., 191.],
       [  2.,   9.,  11.],
       [ 22.,  53., 211.],
       [ 29.,  49., 225.],
       [  1.,  21., 290.],
       [ 25.,  14., 101.],
       [102.,  50., 470.],
       [  0.,  22., 165.],
       [ 27.,   0., 192.],
       [ 40.,   0., 213.]])
In [14]:
sac = cric_data[:,0]
In [135]:
sac
Out[135]:
array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
         4.,   7.,  37.,  14.,   0.,   4.,   0.,  21.,   1.,  62.,   0.,
       138.,  38.,   2.,  46.,  65.,   0.,  39.,  48., 141.,  62.,  12.,
         1.,  41.,  11.,   3., 186.,  11.,  27.,  27.,  51.,  18.,  32.,
       146.,   5.,  45., 141.,  12.,  65.,  27.,   7.,  16.,   2.,  28.,
         6., 123., 120.,   7.,   3.,   0.,  81.,   2.,  54., 122.,   4.,
        14.,   0., 100.,  15.,   0.,  57.,  99.,  37.,  38.,  32.,  21.,
        32.,  40.,   0.,   5.,   8.,   5.,   0.,  50.,  30.,  37.,  89.,
         4.,  98.,  83.,  93.,   0.,  52., 152.,   1.,   8.,  93.,  45.,
        26.,   0.,   1.,   0.,  16.,  47.,  89.,   3.,   1.,  53.,  16.,
         0.,  81.,  14.,  78.,   6., 105., 122.,   9.,   8.,  28.,  35.,
        69.,  13.,  97.,  93.,   2.,  36.,  39.,   2.,  29.,  12.,  19.,
        34.,   2., 100.,  44.,  82.,   0.,  79.,   6.,   9.,   8.,  23.,
        93.,  35.,  63.,  74.,   8., 117.,  39.,  49.,  64.,  43.,  72.,
         5.,  17.,   0.,  65.,  20., 141.,  28.,  44.,  27.,  60.,  68.,
         3., 139.,  31.,   2.,  44.,  47.,   6.,  17.,  35.,  88., 114.,
         7., 127.,   0.,  45.,  33., 110., 146.,   7.,  25.,   9.,   2.,
        11.,  17.,  14.,   1.,  45.,  94.,  28.,   4.,  62.,   1.,   9.,
        67.,  10.,  99.,  55.,   0.,   1., 101.,   2.,   1.,  16., 140.,
        23., 113.,  10.,   1.,  41.,   1.,  28.,   2.,  22.,  29.,   1.,
        25., 102.,   0.,  27.,  40.])
In [16]:
rah = cric_data[:,1]
In [17]:
rah
Out[17]:
array([ 78.,  62.,  85.,  24.,  17., 104.,  76.,  74.,  60.,  12.,  63.,
       107.,  76.,   4.,   5.,  33.,   7.,   0.,  36.,  66.,   0., 123.,
        39.,   9.,  11.,  14.,   0.,   0.,  26.,   4.,  48.,   7.,  73.,
        86.,  32.,  82.,  25., 153.,  26.,   1.,   6.,   3.,   1.,  39.,
        30.,  32.,  84.,  36.,  31.,   0.,  47.,  13.,  49.,  28.,   0.,
        28.,  19.,  13.,  14.,  11., 103.,  43.,   5.,   5.,  15.,   0.,
         5.,  30.,   4.,  53.,  60.,   7.,  74.,  71.,  54.,  13.,  69.,
        33.,  29.,   2.,   8.,  36.,  51.,   8.,  62.,   0.,  22.,  39.,
       104.,  44.,   1.,   2.,   0.,  17.,   0.,  14.,  62.,  15.,  68.,
        17.,   0.,  22.,  25.,  29.,  60.,  34.,  65.,   3.,   7.,  16.,
         0.,   4.,  53.,   5.,  23.,  82.,   3.,   0.,  20.,  21.,  80.,
        22.,   8.,  18.,  24.,  50.,   1.,  42.,  61.,   0.,   6.,  64.,
         9.,  46.,   0.,   0.,   0.,   0.,  13.,   0.,  72.,  12.,  38.,
        79.,  18.,  16.,  16.,  56.,  21.,  58.,   8.,   0.,   0.,   7.,
        13.,  77.,  29.,  20.,  90.,  26.,  54.,  17.,  78.,  57.,  59.,
        10.,  15.,  54.,  52.,   9.,   0.,  18.,   3.,   4.,   6.,  16.,
        71.,  64.,   7.,  61.,   1.,   7.,   0.,   0.,  26.,  19.,  63.,
         3.,  46.,  31.,  12.,  49.,   4.,  99.,  47.,  56.,  73.,  74.,
        31.,  29.,  92.,   1.,   0.,  30.,  16., 145.,  22.,  31., 104.,
        20.,  13.,  52.,  31.,  12.,  50.,   3.,   9.,  53.,  49.,  21.,
        14.,  50.,  22.,   0.,   0.])
In [18]:
india = cric_data[:, 2]
In [19]:
india
Out[19]:
array([342., 191., 252., 307., 229., 246., 226., 288., 216., 224., 161.,
       276., 283., 297., 139., 224., 178.,   0., 193., 231., 134., 246.,
       299., 242., 214., 152., 104.,   4., 155., 168., 282., 228., 231.,
       238., 255., 273., 143., 345., 134., 292., 299., 233., 332., 276.,
       264., 213., 224., 306., 259., 141., 155., 183., 309., 208., 124.,
       208., 305., 273., 186., 163., 239., 274., 182., 256., 227., 157.,
       353., 271., 211., 141., 243., 499., 229., 234., 259., 242., 223.,
       184., 125., 195., 154., 142., 197., 213., 256., 197., 177., 167.,
       366., 269., 292., 218.,   0., 199., 319., 245., 274., 208., 201.,
       275., 134.,  68., 149., 216., 407., 302., 197., 222., 224., 321.,
         0., 162., 221., 204., 213., 286., 272., 382., 229., 175., 360.,
       256., 165., 335., 188., 146., 113., 241., 211., 225.,  35., 163.,
       200., 176., 269., 284., 175.,  27., 282., 141., 229., 213., 205.,
       279.,  88., 284., 207., 224., 204., 280., 197., 205., 230., 323.,
       209., 210., 162., 272., 251., 286., 228., 148., 272., 309., 202.,
       136., 281., 314., 419., 229., 133., 228., 143., 116., 194., 249.,
       319., 205., 191., 213., 104., 210., 392.,  57., 213., 158., 163.,
       166., 164., 238., 118., 189., 346., 390., 319., 276., 324., 213.,
       207., 158., 304., 199.,   0., 195., 207., 352., 225., 236., 301.,
       136., 327., 296., 176., 201., 171., 191.,  11., 211., 225., 290.,
       101., 470., 165., 192., 213.])
In [20]:
def stats(col):
    print("Mean is : ", np.mean(col))
    print("Median is :", np.median(col))
    print("Inter quartile range :", np.percentile(col, 75) 
    - np.percentile(col, 25))
In [21]:
stats(sac)
Mean is :  39.87555555555556
Median is : 27.0
Inter quartile range : 57.0
In [22]:
stats(rah)
Mean is :  32.062222222222225
Median is : 22.0
Inter quartile range : 46.0
In [23]:
stats(india)
Mean is :  220.79555555555555
Median is : 216.0
Inter quartile range : 98.0
In [24]:
np.mean(cric_data, axis = 0)
Out[24]:
array([ 39.87555556,  32.06222222, 220.79555556])
In [25]:
np.median(cric_data, axis=0)
Out[25]:
array([ 27.,  22., 216.])
In [26]:
np.percentile(cric_data, 75, axis=0) - np.percentile(cric_data, 25, axis = 0)
Out[26]:
array([57., 46., 98.])

Q2. Find the histogram of Sachin's scores with 10 bins

In [27]:
np.histogram(sac)
Out[27]:
(array([99, 36, 28, 16, 11, 17,  8,  8,  1,  1]),
 array([  0. ,  18.6,  37.2,  55.8,  74.4,  93. , 111.6, 130.2, 148.8,
        167.4, 186. ]))

Q3. Find the mean of Sachin's scores grouped by 25 matches

In [28]:
sac.shape
Out[28]:
(225,)

Considering sachin's dataset, when reshape is applied, the first 25 datapoints form the first row, the second 25 data poits forms the second row and so on...

In [29]:
sac.reshape(9, 25)
Out[29]:
array([[100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
          4.,   7.,  37.,  14.,   0.,   4.,   0.,  21.,   1.,  62.,   0.,
        138.,  38.,   2.],
       [ 46.,  65.,   0.,  39.,  48., 141.,  62.,  12.,   1.,  41.,  11.,
          3., 186.,  11.,  27.,  27.,  51.,  18.,  32., 146.,   5.,  45.,
        141.,  12.,  65.],
       [ 27.,   7.,  16.,   2.,  28.,   6., 123., 120.,   7.,   3.,   0.,
         81.,   2.,  54., 122.,   4.,  14.,   0., 100.,  15.,   0.,  57.,
         99.,  37.,  38.],
       [ 32.,  21.,  32.,  40.,   0.,   5.,   8.,   5.,   0.,  50.,  30.,
         37.,  89.,   4.,  98.,  83.,  93.,   0.,  52., 152.,   1.,   8.,
         93.,  45.,  26.],
       [  0.,   1.,   0.,  16.,  47.,  89.,   3.,   1.,  53.,  16.,   0.,
         81.,  14.,  78.,   6., 105., 122.,   9.,   8.,  28.,  35.,  69.,
         13.,  97.,  93.],
       [  2.,  36.,  39.,   2.,  29.,  12.,  19.,  34.,   2., 100.,  44.,
         82.,   0.,  79.,   6.,   9.,   8.,  23.,  93.,  35.,  63.,  74.,
          8., 117.,  39.],
       [ 49.,  64.,  43.,  72.,   5.,  17.,   0.,  65.,  20., 141.,  28.,
         44.,  27.,  60.,  68.,   3., 139.,  31.,   2.,  44.,  47.,   6.,
         17.,  35.,  88.],
       [114.,   7., 127.,   0.,  45.,  33., 110., 146.,   7.,  25.,   9.,
          2.,  11.,  17.,  14.,   1.,  45.,  94.,  28.,   4.,  62.,   1.,
          9.,  67.,  10.],
       [ 99.,  55.,   0.,   1., 101.,   2.,   1.,  16., 140.,  23., 113.,
         10.,   1.,  41.,   1.,  28.,   2.,  22.,  29.,   1.,  25., 102.,
          0.,  27.,  40.]])
In [30]:
sac_by_25 = sac.reshape(9, 25)
In [31]:
np.mean(sac_by_25, axis = 1)
Out[31]:
array([33.96, 49.4 , 38.48, 40.16, 39.36, 38.2 , 44.6 , 39.52, 35.2 ])

Q4. Find mean of Sachin's scores where he has scored a century

Q5. Find mean of Sachin's scores when Rahul scored less than 10

In [32]:
sac > 100
Out[32]:
array([False, False, False, False,  True, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False,  True, False, False, False, False,
       False, False, False,  True, False, False, False, False, False,
       False,  True, False, False, False, False, False, False,  True,
       False, False,  True, False, False, False, False, False, False,
       False, False,  True,  True, False, False, False, False, False,
       False,  True, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False,  True, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False,  True,  True,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False,  True, False, False, False, False,
       False, False, False, False, False, False,  True, False, False,
       False, False, False, False,  True, False, False, False, False,
       False, False, False, False,  True, False,  True, False, False,
       False,  True,  True, False, False, False, False, False, False,
       False, False, False, False, False, False, False, False, False,
       False, False, False, False, False, False,  True, False, False,
       False,  True, False,  True, False, False, False, False, False,
       False, False, False, False, False,  True, False, False, False])
In [33]:
sac[sac>100]
Out[33]:
array([104., 138., 141., 186., 146., 141., 123., 120., 122., 152., 105.,
       122., 117., 141., 139., 114., 127., 110., 146., 101., 140., 113.,
       102.])
In [34]:
np.mean(sac[sac > 100])
Out[34]:
128.2608695652174
In [35]:
## Question 5
np.mean(sac[rah <= 10])
Out[35]:
40.2112676056338

Q6. Find mean for Sachin's scores based on which quartile India's score falls in

In [36]:
np.percentile(india, [25, 50, 75, 100])
Out[36]:
array([175., 216., 273., 499.])
In [37]:
qrs = np.percentile(india, [25, 50, 75, 100])

If India scores <= 175, find Sachin's mean

if India scores <= 216, find Sachin's mean and so on...

In [38]:
india
Out[38]:
array([342., 191., 252., 307., 229., 246., 226., 288., 216., 224., 161.,
       276., 283., 297., 139., 224., 178.,   0., 193., 231., 134., 246.,
       299., 242., 214., 152., 104.,   4., 155., 168., 282., 228., 231.,
       238., 255., 273., 143., 345., 134., 292., 299., 233., 332., 276.,
       264., 213., 224., 306., 259., 141., 155., 183., 309., 208., 124.,
       208., 305., 273., 186., 163., 239., 274., 182., 256., 227., 157.,
       353., 271., 211., 141., 243., 499., 229., 234., 259., 242., 223.,
       184., 125., 195., 154., 142., 197., 213., 256., 197., 177., 167.,
       366., 269., 292., 218.,   0., 199., 319., 245., 274., 208., 201.,
       275., 134.,  68., 149., 216., 407., 302., 197., 222., 224., 321.,
         0., 162., 221., 204., 213., 286., 272., 382., 229., 175., 360.,
       256., 165., 335., 188., 146., 113., 241., 211., 225.,  35., 163.,
       200., 176., 269., 284., 175.,  27., 282., 141., 229., 213., 205.,
       279.,  88., 284., 207., 224., 204., 280., 197., 205., 230., 323.,
       209., 210., 162., 272., 251., 286., 228., 148., 272., 309., 202.,
       136., 281., 314., 419., 229., 133., 228., 143., 116., 194., 249.,
       319., 205., 191., 213., 104., 210., 392.,  57., 213., 158., 163.,
       166., 164., 238., 118., 189., 346., 390., 319., 276., 324., 213.,
       207., 158., 304., 199.,   0., 195., 207., 352., 225., 236., 301.,
       136., 327., 296., 176., 201., 171., 191.,  11., 211., 225., 290.,
       101., 470., 165., 192., 213.])
In [39]:
india < 175
Out[39]:
array([False, False, False, False, False, False, False, False, False,
       False,  True, False, False, False,  True, False, False,  True,
       False, False,  True, False, False, False, False,  True,  True,
        True,  True,  True, False, False, False, False, False, False,
        True, False,  True, False, False, False, False, False, False,
       False, False, False, False,  True,  True, False, False, False,
        True, False, False, False, False,  True, False, False, False,
       False, False,  True, False, False, False,  True, False, False,
       False, False, False, False, False, False,  True, False,  True,
        True, False, False, False, False, False,  True, False, False,
       False, False,  True, False, False, False, False, False, False,
       False,  True,  True,  True, False, False, False, False, False,
       False, False,  True,  True, False, False, False, False, False,
       False, False, False, False, False,  True, False, False,  True,
        True, False, False, False,  True,  True, False, False, False,
       False, False,  True, False,  True, False, False, False, False,
        True, False, False, False, False, False, False, False, False,
       False, False, False,  True, False, False, False, False,  True,
       False, False, False,  True, False, False, False, False,  True,
       False,  True,  True, False, False, False, False, False, False,
        True, False, False,  True, False,  True,  True,  True,  True,
       False,  True, False, False, False, False, False, False, False,
       False,  True, False, False,  True, False, False, False, False,
       False, False,  True, False, False, False, False,  True, False,
        True, False, False, False,  True, False,  True, False, False])
In [40]:
india[(india < 175)]
Out[40]:
array([161., 139.,   0., 134., 152., 104.,   4., 155., 168., 143., 134.,
       141., 155., 124., 163., 157., 141., 125., 154., 142., 167.,   0.,
       134.,  68., 149.,   0., 162., 165., 146., 113.,  35., 163.,  27.,
       141.,  88., 162., 148., 136., 133., 143., 116., 104.,  57., 158.,
       163., 166., 164., 118., 158.,   0., 136., 171.,  11., 101., 165.])
In [41]:
india[india < [175, 215]]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-41-1879466c052d> in <module>()
----> 1 india[india < [175, 215]]

ValueError: operands could not be broadcast together with shapes (225,) (2,) 
In [43]:
qrs
Out[43]:
array([175., 216., 273., 499.])
In [44]:
india < qrs
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-44-432244d4f3a4> in <module>()
----> 1 india < qrs

ValueError: operands could not be broadcast together with shapes (225,) (4,) 
In [82]:
qrs.shape
Out[82]:
(4, 1)

General Rule(s):

  1. are they equal, or
  2. one of them is 1
In [83]:
india.shape
Out[83]:
(225,)
In [85]:
qrs = qrs.reshape(4, 1)
In [86]:
qrs.shape
Out[86]:
(4, 1)
In [87]:
india < qrs
Out[87]:
array([[False, False, False, False, False, False, False, False, False,
        False,  True, False, False, False,  True, False, False,  True,
        False, False,  True, False, False, False, False,  True,  True,
         True,  True,  True, False, False, False, False, False, False,
         True, False,  True, False, False, False, False, False, False,
        False, False, False, False,  True,  True, False, False, False,
         True, False, False, False, False,  True, False, False, False,
        False, False,  True, False, False, False,  True, False, False,
        False, False, False, False, False, False,  True, False,  True,
         True, False, False, False, False, False,  True, False, False,
        False, False,  True, False, False, False, False, False, False,
        False,  True,  True,  True, False, False, False, False, False,
        False, False,  True,  True, False, False, False, False, False,
        False, False, False, False, False,  True, False, False,  True,
         True, False, False, False,  True,  True, False, False, False,
        False, False,  True, False,  True, False, False, False, False,
         True, False, False, False, False, False, False, False, False,
        False, False, False,  True, False, False, False, False,  True,
        False, False, False,  True, False, False, False, False,  True,
        False,  True,  True, False, False, False, False, False, False,
         True, False, False,  True, False,  True,  True,  True,  True,
        False,  True, False, False, False, False, False, False, False,
        False,  True, False, False,  True, False, False, False, False,
        False, False,  True, False, False, False, False,  True, False,
         True, False, False, False,  True, False,  True, False, False],
       [False,  True, False, False, False, False, False, False, False,
        False,  True, False, False, False,  True, False,  True,  True,
         True, False,  True, False, False, False,  True,  True,  True,
         True,  True,  True, False, False, False, False, False, False,
         True, False,  True, False, False, False, False, False, False,
         True, False, False, False,  True,  True,  True, False,  True,
         True,  True, False, False,  True,  True, False, False,  True,
        False, False,  True, False, False,  True,  True, False, False,
        False, False, False, False, False,  True,  True,  True,  True,
         True,  True,  True, False,  True,  True,  True, False, False,
        False, False,  True,  True, False, False, False,  True,  True,
        False,  True,  True,  True, False, False, False,  True, False,
        False, False,  True,  True, False,  True,  True, False, False,
        False, False,  True, False, False,  True, False,  True,  True,
         True, False,  True, False,  True,  True,  True,  True, False,
        False,  True,  True, False,  True, False,  True,  True, False,
         True, False,  True, False,  True, False,  True,  True, False,
        False,  True,  True,  True, False, False, False, False,  True,
        False, False,  True,  True, False, False, False, False,  True,
        False,  True,  True,  True, False, False,  True,  True,  True,
         True,  True, False,  True,  True,  True,  True,  True,  True,
        False,  True,  True, False, False, False, False, False,  True,
         True,  True, False,  True,  True,  True,  True, False, False,
        False, False,  True, False, False,  True,  True,  True,  True,
         True,  True, False, False,  True, False,  True,  True,  True],
       [False,  True,  True, False,  True,  True,  True, False,  True,
         True,  True, False, False, False,  True,  True,  True,  True,
         True,  True,  True,  True, False,  True,  True,  True,  True,
         True,  True,  True, False,  True,  True,  True,  True, False,
         True, False,  True, False, False,  True, False, False,  True,
         True,  True, False,  True,  True,  True,  True, False,  True,
         True,  True, False, False,  True,  True,  True, False,  True,
         True,  True,  True, False,  True,  True,  True,  True, False,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True, False,  True,
        False,  True,  True,  True, False,  True, False,  True,  True,
        False,  True,  True,  True,  True, False, False,  True,  True,
         True, False,  True,  True,  True,  True,  True, False,  True,
        False,  True,  True, False,  True,  True, False,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
        False,  True,  True, False,  True,  True,  True,  True, False,
         True, False,  True,  True,  True, False,  True,  True,  True,
        False,  True,  True,  True,  True,  True, False,  True,  True,
         True, False,  True,  True, False, False, False,  True,  True,
         True,  True,  True,  True,  True, False,  True,  True,  True,
         True,  True, False,  True,  True,  True,  True,  True,  True,
         True,  True,  True, False, False, False, False, False,  True,
         True,  True, False,  True,  True,  True,  True, False,  True,
         True, False,  True, False, False,  True,  True,  True,  True,
         True,  True,  True, False,  True, False,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True, False,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True,
         True,  True,  True,  True,  True,  True,  True,  True,  True]])
In [88]:
indicies = india < qrs
In [89]:
indicies.shape
Out[89]:
(4, 225)
In [90]:
qrs
Out[90]:
array([[175.],
       [216.],
       [273.],
       [499.]])
In [91]:
sac
Out[91]:
array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
         4.,   7.,  37.,  14.,   0.,   4.,   0.,  21.,   1.,  62.,   0.,
       138.,  38.,   2.,  46.,  65.,   0.,  39.,  48., 141.,  62.,  12.,
         1.,  41.,  11.,   3., 186.,  11.,  27.,  27.,  51.,  18.,  32.,
       146.,   5.,  45., 141.,  12.,  65.,  27.,   7.,  16.,   2.,  28.,
         6., 123., 120.,   7.,   3.,   0.,  81.,   2.,  54., 122.,   4.,
        14.,   0., 100.,  15.,   0.,  57.,  99.,  37.,  38.,  32.,  21.,
        32.,  40.,   0.,   5.,   8.,   5.,   0.,  50.,  30.,  37.,  89.,
         4.,  98.,  83.,  93.,   0.,  52., 152.,   1.,   8.,  93.,  45.,
        26.,   0.,   1.,   0.,  16.,  47.,  89.,   3.,   1.,  53.,  16.,
         0.,  81.,  14.,  78.,   6., 105., 122.,   9.,   8.,  28.,  35.,
        69.,  13.,  97.,  93.,   2.,  36.,  39.,   2.,  29.,  12.,  19.,
        34.,   2., 100.,  44.,  82.,   0.,  79.,   6.,   9.,   8.,  23.,
        93.,  35.,  63.,  74.,   8., 117.,  39.,  49.,  64.,  43.,  72.,
         5.,  17.,   0.,  65.,  20., 141.,  28.,  44.,  27.,  60.,  68.,
         3., 139.,  31.,   2.,  44.,  47.,   6.,  17.,  35.,  88., 114.,
         7., 127.,   0.,  45.,  33., 110., 146.,   7.,  25.,   9.,   2.,
        11.,  17.,  14.,   1.,  45.,  94.,  28.,   4.,  62.,   1.,   9.,
        67.,  10.,  99.,  55.,   0.,   1., 101.,   2.,   1.,  16., 140.,
        23., 113.,  10.,   1.,  41.,   1.,  28.,   2.,  22.,  29.,   1.,
        25., 102.,   0.,  27.,  40.])

dataset for scores less than 216 - which is the second quartile

In [92]:
sac[indicies[1, :]]
Out[92]:
array([ 11.,  18.,  14.,   4.,   0.,  21.,  62.,   2.,  46.,  65.,   0.,
        39.,  48.,   3.,  11.,   5.,  65.,  27.,   7.,   2.,  28.,   6.,
         7.,   3.,   2.,   4., 100.,  15.,  32.,  40.,   0.,   5.,   8.,
         5.,   0.,  30.,  37.,  89.,   0.,  52.,  93.,  45.,   0.,   1.,
         0.,   3.,   0.,  81.,  78.,   6.,  28.,  13.,  93.,   2.,  36.,
         2.,  12.,  19.,  34.,   2.,  82.,   0.,   6.,   8.,  23.,  35.,
        74., 117.,  49.,  64.,   5.,  17.,   0.,  44.,  68.,   3.,  47.,
        17.,  35.,  88., 127.,   0.,  45.,  33., 110.,   7.,  25.,   9.,
         2.,  11.,  17.,   1.,  45.,   9.,  67.,  10.,  55.,   0.,   1.,
       101.,  23.,   1.,  41.,   1.,  28.,   2.,  22.,  25.,   0.,  27.,
        40.])

dataset for scores less than 175 - which is the first quartile

In [93]:
sac[indicies[0,:]]
Out[93]:
array([18., 14.,  0., 62., 46., 65.,  0., 39., 48.,  3., 11., 65., 27.,
       28.,  3.,  4., 15., 40.,  5.,  8., 89.,  0.,  0.,  1.,  0.,  0.,
       81., 13.,  2., 36., 12., 19.,  0.,  6., 35.,  0., 44.,  3., 47.,
       17., 35., 33.,  7.,  9.,  2., 11., 17.,  1., 10.,  0., 23.,  1.,
        2., 25.,  0.])

one liner for FOR Loop - to get mean scores for all the four quartiles

In [94]:
for i in range(4): print(i, np.mean(sac[indicies[i]]))
0 19.672727272727272
1 28.18018018018018
2 31.688622754491018
3 39.799107142857146

Q7. For every match find out who has scored more - Sachin or Dravid

In [95]:
snr = cric_data[0 : 2]
In [96]:
snr
Out[96]:
array([[100.,  78., 342.],
       [ 11.,  62., 191.]])
In [97]:
snr = cric_data[:, 0:2]
In [98]:
snr
Out[98]:
array([[100.,  78.],
       [ 11.,  62.],
       [  8.,  85.],
       [ 71.,  24.],
       [104.,  17.],
       [ 18., 104.],
       [  8.,  76.],
       [ 86.,  74.],
       [ 12.,  60.],
       [ 85.,  12.],
       [ 18.,  63.],
       [  4., 107.],
       [  7.,  76.],
       [ 37.,   4.],
       [ 14.,   5.],
       [  0.,  33.],
       [  4.,   7.],
       [  0.,   0.],
       [ 21.,  36.],
       [  1.,  66.],
       [ 62.,   0.],
       [  0., 123.],
       [138.,  39.],
       [ 38.,   9.],
       [  2.,  11.],
       [ 46.,  14.],
       [ 65.,   0.],
       [  0.,   0.],
       [ 39.,  26.],
       [ 48.,   4.],
       [141.,  48.],
       [ 62.,   7.],
       [ 12.,  73.],
       [  1.,  86.],
       [ 41.,  32.],
       [ 11.,  82.],
       [  3.,  25.],
       [186., 153.],
       [ 11.,  26.],
       [ 27.,   1.],
       [ 27.,   6.],
       [ 51.,   3.],
       [ 18.,   1.],
       [ 32.,  39.],
       [146.,  30.],
       [  5.,  32.],
       [ 45.,  84.],
       [141.,  36.],
       [ 12.,  31.],
       [ 65.,   0.],
       [ 27.,  47.],
       [  7.,  13.],
       [ 16.,  49.],
       [  2.,  28.],
       [ 28.,   0.],
       [  6.,  28.],
       [123.,  19.],
       [120.,  13.],
       [  7.,  14.],
       [  3.,  11.],
       [  0., 103.],
       [ 81.,  43.],
       [  2.,   5.],
       [ 54.,   5.],
       [122.,  15.],
       [  4.,   0.],
       [ 14.,   5.],
       [  0.,  30.],
       [100.,   4.],
       [ 15.,  53.],
       [  0.,  60.],
       [ 57.,   7.],
       [ 99.,  74.],
       [ 37.,  71.],
       [ 38.,  54.],
       [ 32.,  13.],
       [ 21.,  69.],
       [ 32.,  33.],
       [ 40.,  29.],
       [  0.,   2.],
       [  5.,   8.],
       [  8.,  36.],
       [  5.,  51.],
       [  0.,   8.],
       [ 50.,  62.],
       [ 30.,   0.],
       [ 37.,  22.],
       [ 89.,  39.],
       [  4., 104.],
       [ 98.,  44.],
       [ 83.,   1.],
       [ 93.,   2.],
       [  0.,   0.],
       [ 52.,  17.],
       [152.,   0.],
       [  1.,  14.],
       [  8.,  62.],
       [ 93.,  15.],
       [ 45.,  68.],
       [ 26.,  17.],
       [  0.,   0.],
       [  1.,  22.],
       [  0.,  25.],
       [ 16.,  29.],
       [ 47.,  60.],
       [ 89.,  34.],
       [  3.,  65.],
       [  1.,   3.],
       [ 53.,   7.],
       [ 16.,  16.],
       [  0.,   0.],
       [ 81.,   4.],
       [ 14.,  53.],
       [ 78.,   5.],
       [  6.,  23.],
       [105.,  82.],
       [122.,   3.],
       [  9.,   0.],
       [  8.,  20.],
       [ 28.,  21.],
       [ 35.,  80.],
       [ 69.,  22.],
       [ 13.,   8.],
       [ 97.,  18.],
       [ 93.,  24.],
       [  2.,  50.],
       [ 36.,   1.],
       [ 39.,  42.],
       [  2.,  61.],
       [ 29.,   0.],
       [ 12.,   6.],
       [ 19.,  64.],
       [ 34.,   9.],
       [  2.,  46.],
       [100.,   0.],
       [ 44.,   0.],
       [ 82.,   0.],
       [  0.,   0.],
       [ 79.,  13.],
       [  6.,   0.],
       [  9.,  72.],
       [  8.,  12.],
       [ 23.,  38.],
       [ 93.,  79.],
       [ 35.,  18.],
       [ 63.,  16.],
       [ 74.,  16.],
       [  8.,  56.],
       [117.,  21.],
       [ 39.,  58.],
       [ 49.,   8.],
       [ 64.,   0.],
       [ 43.,   0.],
       [ 72.,   7.],
       [  5.,  13.],
       [ 17.,  77.],
       [  0.,  29.],
       [ 65.,  20.],
       [ 20.,  90.],
       [141.,  26.],
       [ 28.,  54.],
       [ 44.,  17.],
       [ 27.,  78.],
       [ 60.,  57.],
       [ 68.,  59.],
       [  3.,  10.],
       [139.,  15.],
       [ 31.,  54.],
       [  2.,  52.],
       [ 44.,   9.],
       [ 47.,   0.],
       [  6.,  18.],
       [ 17.,   3.],
       [ 35.,   4.],
       [ 88.,   6.],
       [114.,  16.],
       [  7.,  71.],
       [127.,  64.],
       [  0.,   7.],
       [ 45.,  61.],
       [ 33.,   1.],
       [110.,   7.],
       [146.,   0.],
       [  7.,   0.],
       [ 25.,  26.],
       [  9.,  19.],
       [  2.,  63.],
       [ 11.,   3.],
       [ 17.,  46.],
       [ 14.,  31.],
       [  1.,  12.],
       [ 45.,  49.],
       [ 94.,   4.],
       [ 28.,  99.],
       [  4.,  47.],
       [ 62.,  56.],
       [  1.,  73.],
       [  9.,  74.],
       [ 67.,  31.],
       [ 10.,  29.],
       [ 99.,  92.],
       [ 55.,   1.],
       [  0.,   0.],
       [  1.,  30.],
       [101.,  16.],
       [  2., 145.],
       [  1.,  22.],
       [ 16.,  31.],
       [140., 104.],
       [ 23.,  20.],
       [113.,  13.],
       [ 10.,  52.],
       [  1.,  31.],
       [ 41.,  12.],
       [  1.,  50.],
       [ 28.,   3.],
       [  2.,   9.],
       [ 22.,  53.],
       [ 29.,  49.],
       [  1.,  21.],
       [ 25.,  14.],
       [102.,  50.],
       [  0.,  22.],
       [ 27.,   0.],
       [ 40.,   0.]])

using argmax f() - returns the position of the max value in the given array

In [99]:
np.max([1,2,3,4,3,2])
Out[99]:
4
In [100]:
np.argmax([1,2,3,4,3,2])
Out[100]:
3
In [101]:
np.argmax(snr, axis = 1)
Out[101]:
array([0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1,
       0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0,
       0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1,
       0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
       1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0,
       1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1,
       0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1,
       0, 0, 1, 0, 0])
In [102]:
is_rahul = np.argmax(snr, axis=1)
In [103]:
is_rahul
Out[103]:
array([0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1,
       0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0,
       0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0,
       0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1,
       0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
       1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0,
       1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1,
       0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1,
       0, 0, 1, 0, 0])
In [104]:
np.sum(is_rahul) / 225
Out[104]:
0.4711111111111111

where f() - takes three arguments - condition, x, y

  • if true - returns x else
  • returns y
In [105]:
np.where(is_rahul, "rahul", "sac")
Out[105]:
array(['sac', 'rahul', 'rahul', 'sac', 'sac', 'rahul', 'rahul', 'sac',
       'rahul', 'sac', 'rahul', 'rahul', 'rahul', 'sac', 'sac', 'rahul',
       'rahul', 'sac', 'rahul', 'rahul', 'sac', 'rahul', 'sac', 'sac',
       'rahul', 'sac', 'sac', 'sac', 'sac', 'sac', 'sac', 'sac', 'rahul',
       'rahul', 'sac', 'rahul', 'rahul', 'sac', 'rahul', 'sac', 'sac',
       'sac', 'sac', 'rahul', 'sac', 'rahul', 'rahul', 'sac', 'rahul',
       'sac', 'rahul', 'rahul', 'rahul', 'rahul', 'sac', 'rahul', 'sac',
       'sac', 'rahul', 'rahul', 'rahul', 'sac', 'rahul', 'sac', 'sac',
       'sac', 'sac', 'rahul', 'sac', 'rahul', 'rahul', 'sac', 'sac',
       'rahul', 'rahul', 'sac', 'rahul', 'rahul', 'sac', 'rahul', 'rahul',
       'rahul', 'rahul', 'rahul', 'rahul', 'sac', 'sac', 'sac', 'rahul',
       'sac', 'sac', 'sac', 'sac', 'sac', 'sac', 'rahul', 'rahul', 'sac',
       'rahul', 'sac', 'sac', 'rahul', 'rahul', 'rahul', 'rahul', 'sac',
       'rahul', 'rahul', 'sac', 'sac', 'sac', 'sac', 'rahul', 'sac',
       'rahul', 'sac', 'sac', 'sac', 'rahul', 'sac', 'rahul', 'sac',
       'sac', 'sac', 'sac', 'rahul', 'sac', 'rahul', 'rahul', 'sac',
       'sac', 'rahul', 'sac', 'rahul', 'sac', 'sac', 'sac', 'sac', 'sac',
       'sac', 'rahul', 'rahul', 'rahul', 'sac', 'sac', 'sac', 'sac',
       'rahul', 'sac', 'rahul', 'sac', 'sac', 'sac', 'sac', 'rahul',
       'rahul', 'rahul', 'sac', 'rahul', 'sac', 'rahul', 'sac', 'rahul',
       'sac', 'sac', 'rahul', 'sac', 'rahul', 'rahul', 'sac', 'sac',
       'rahul', 'sac', 'sac', 'sac', 'sac', 'rahul', 'sac', 'rahul',
       'rahul', 'sac', 'sac', 'sac', 'sac', 'rahul', 'rahul', 'rahul',
       'sac', 'rahul', 'rahul', 'rahul', 'rahul', 'sac', 'rahul', 'rahul',
       'sac', 'rahul', 'rahul', 'sac', 'rahul', 'sac', 'sac', 'sac',
       'rahul', 'sac', 'rahul', 'rahul', 'rahul', 'sac', 'sac', 'sac',
       'rahul', 'rahul', 'sac', 'rahul', 'sac', 'rahul', 'rahul', 'rahul',
       'rahul', 'sac', 'sac', 'rahul', 'sac', 'sac'], dtype='<U5')

Q8. How many more runs do sachin score on average after having scored x runs

In [106]:
x_arr = np.arange(0, 101, 5)
In [107]:
x_arr.shape
Out[107]:
(21,)
In [108]:
x_arr
Out[108]:
array([  0,   5,  10,  15,  20,  25,  30,  35,  40,  45,  50,  55,  60,
        65,  70,  75,  80,  85,  90,  95, 100])
In [121]:
x_arr = x_arr.reshape(x_arr.shape[0], 1)
In [110]:
x_arr
Out[110]:
array([[  0],
       [  5],
       [ 10],
       [ 15],
       [ 20],
       [ 25],
       [ 30],
       [ 35],
       [ 40],
       [ 45],
       [ 50],
       [ 55],
       [ 60],
       [ 65],
       [ 70],
       [ 75],
       [ 80],
       [ 85],
       [ 90],
       [ 95],
       [100]])
In [111]:
x_arr.shape
Out[111]:
(21, 1)
In [112]:
sac.shape
Out[112]:
(225,)
In [113]:
sac > x_arr
Out[113]:
array([[ True,  True,  True, ..., False,  True,  True],
       [ True,  True,  True, ..., False,  True,  True],
       [ True,  True, False, ..., False,  True,  True],
       ...,
       [ True, False, False, ..., False, False, False],
       [ True, False, False, ..., False, False, False],
       [False, False, False, ..., False, False, False]])
In [114]:
indicies = sac>x_arr
In [115]:
indicies
Out[115]:
array([[ True,  True,  True, ..., False,  True,  True],
       [ True,  True,  True, ..., False,  True,  True],
       [ True,  True, False, ..., False,  True,  True],
       ...,
       [ True, False, False, ..., False, False, False],
       [ True, False, False, ..., False, False, False],
       [False, False, False, ..., False, False, False]])
In [116]:
indicies.shape
Out[116]:
(21, 225)
In [123]:
# to get all the scores that are more than 5
sac[indicies[1,:]]
Out[123]:
array([100.,  11.,   8.,  71., 104.,  18.,   8.,  86.,  12.,  85.,  18.,
         7.,  37.,  14.,  21.,  62., 138.,  38.,  46.,  65.,  39.,  48.,
       141.,  62.,  12.,  41.,  11., 186.,  11.,  27.,  27.,  51.,  18.,
        32., 146.,  45., 141.,  12.,  65.,  27.,   7.,  16.,  28.,   6.,
       123., 120.,   7.,  81.,  54., 122.,  14., 100.,  15.,  57.,  99.,
        37.,  38.,  32.,  21.,  32.,  40.,   8.,  50.,  30.,  37.,  89.,
        98.,  83.,  93.,  52., 152.,   8.,  93.,  45.,  26.,  16.,  47.,
        89.,  53.,  16.,  81.,  14.,  78.,   6., 105., 122.,   9.,   8.,
        28.,  35.,  69.,  13.,  97.,  93.,  36.,  39.,  29.,  12.,  19.,
        34., 100.,  44.,  82.,  79.,   6.,   9.,   8.,  23.,  93.,  35.,
        63.,  74.,   8., 117.,  39.,  49.,  64.,  43.,  72.,  17.,  65.,
        20., 141.,  28.,  44.,  27.,  60.,  68., 139.,  31.,  44.,  47.,
         6.,  17.,  35.,  88., 114.,   7., 127.,  45.,  33., 110., 146.,
         7.,  25.,   9.,  11.,  17.,  14.,  45.,  94.,  28.,  62.,   9.,
        67.,  10.,  99.,  55., 101.,  16., 140.,  23., 113.,  10.,  41.,
        28.,  22.,  29.,  25., 102.,  27.,  40.])
In [124]:
# to get all the scores more than 10
sac[indicies[2, :]]
Out[124]:
array([100.,  11.,  71., 104.,  18.,  86.,  12.,  85.,  18.,  37.,  14.,
        21.,  62., 138.,  38.,  46.,  65.,  39.,  48., 141.,  62.,  12.,
        41.,  11., 186.,  11.,  27.,  27.,  51.,  18.,  32., 146.,  45.,
       141.,  12.,  65.,  27.,  16.,  28., 123., 120.,  81.,  54., 122.,
        14., 100.,  15.,  57.,  99.,  37.,  38.,  32.,  21.,  32.,  40.,
        50.,  30.,  37.,  89.,  98.,  83.,  93.,  52., 152.,  93.,  45.,
        26.,  16.,  47.,  89.,  53.,  16.,  81.,  14.,  78., 105., 122.,
        28.,  35.,  69.,  13.,  97.,  93.,  36.,  39.,  29.,  12.,  19.,
        34., 100.,  44.,  82.,  79.,  23.,  93.,  35.,  63.,  74., 117.,
        39.,  49.,  64.,  43.,  72.,  17.,  65.,  20., 141.,  28.,  44.,
        27.,  60.,  68., 139.,  31.,  44.,  47.,  17.,  35.,  88., 114.,
       127.,  45.,  33., 110., 146.,  25.,  11.,  17.,  14.,  45.,  94.,
        28.,  62.,  67.,  99.,  55., 101.,  16., 140.,  23., 113.,  41.,
        28.,  22.,  29.,  25., 102.,  27.,  40.])
In [127]:
# to get scores that are more than 15 and likewise...
sac[indicies[3,:]]
Out[127]:
array([100.,  71., 104.,  18.,  86.,  85.,  18.,  37.,  21.,  62., 138.,
        38.,  46.,  65.,  39.,  48., 141.,  62.,  41., 186.,  27.,  27.,
        51.,  18.,  32., 146.,  45., 141.,  65.,  27.,  16.,  28., 123.,
       120.,  81.,  54., 122., 100.,  57.,  99.,  37.,  38.,  32.,  21.,
        32.,  40.,  50.,  30.,  37.,  89.,  98.,  83.,  93.,  52., 152.,
        93.,  45.,  26.,  16.,  47.,  89.,  53.,  16.,  81.,  78., 105.,
       122.,  28.,  35.,  69.,  97.,  93.,  36.,  39.,  29.,  19.,  34.,
       100.,  44.,  82.,  79.,  23.,  93.,  35.,  63.,  74., 117.,  39.,
        49.,  64.,  43.,  72.,  17.,  65.,  20., 141.,  28.,  44.,  27.,
        60.,  68., 139.,  31.,  44.,  47.,  17.,  35.,  88., 114., 127.,
        45.,  33., 110., 146.,  25.,  17.,  45.,  94.,  28.,  62.,  67.,
        99.,  55., 101.,  16., 140.,  23., 113.,  41.,  28.,  22.,  29.,
        25., 102.,  27.,  40.])
In [128]:
np.mean(sac[indicies[1,:]])
Out[128]:
51.674418604651166
In [129]:
np.mean(sac[indicies[2, :]])
Out[129]:
58.11333333333334
In [130]:
np.mean(sac[indicies[3, :]])
Out[130]:
62.8014705882353
In [118]:
# the following code gives us the mean of the scores

for i in range(x_arr.shape[0]):
    print(np.mean(sac[indicies[i, :]]))
43.34299516908212
51.674418604651166
58.11333333333334
62.8014705882353
67.20161290322581
69.85470085470085
75.57281553398059
79.62765957446808
85.12048192771084
90.79452054794521
94.64179104477611
98.0
99.31666666666666
104.82692307692308
107.08163265306122
109.34782608695652
110.75
114.38461538461539
117.4
121.43333333333334
128.2608695652174
In [136]:
# we are interested in the incremental scores rather than mean so, 
# subtract the ith element (what he has already scored) from the mean

for i in range(x_arr.shape[0]):
    print(x_arr[i, 0], 
          np.mean(sac[indicies[i, :]]) - x_arr[i, 0])
0 43.34299516908212
5 46.674418604651166
10 48.11333333333334
15 47.8014705882353
20 47.20161290322581
25 44.85470085470085
30 45.57281553398059
35 44.62765957446808
40 45.12048192771084
45 45.79452054794521
50 44.64179104477611
55 43.0
60 39.31666666666666
65 39.82692307692308
70 37.08163265306122
75 34.347826086956516
80 30.75
85 29.384615384615387
90 27.400000000000006
95 26.433333333333337
100 28.260869565217405

Q9. How many matches did Sac take to score first 1000 runs, and next 1000 runs and so on...

In [137]:
sac_cumsum = np.cumsum(sac)
In [138]:
sac_cumsum
Out[138]:
array([ 100.,  111.,  119.,  190.,  294.,  312.,  320.,  406.,  418.,
        503.,  521.,  525.,  532.,  569.,  583.,  583.,  587.,  587.,
        608.,  609.,  671.,  671.,  809.,  847.,  849.,  895.,  960.,
        960.,  999., 1047., 1188., 1250., 1262., 1263., 1304., 1315.,
       1318., 1504., 1515., 1542., 1569., 1620., 1638., 1670., 1816.,
       1821., 1866., 2007., 2019., 2084., 2111., 2118., 2134., 2136.,
       2164., 2170., 2293., 2413., 2420., 2423., 2423., 2504., 2506.,
       2560., 2682., 2686., 2700., 2700., 2800., 2815., 2815., 2872.,
       2971., 3008., 3046., 3078., 3099., 3131., 3171., 3171., 3176.,
       3184., 3189., 3189., 3239., 3269., 3306., 3395., 3399., 3497.,
       3580., 3673., 3673., 3725., 3877., 3878., 3886., 3979., 4024.,
       4050., 4050., 4051., 4051., 4067., 4114., 4203., 4206., 4207.,
       4260., 4276., 4276., 4357., 4371., 4449., 4455., 4560., 4682.,
       4691., 4699., 4727., 4762., 4831., 4844., 4941., 5034., 5036.,
       5072., 5111., 5113., 5142., 5154., 5173., 5207., 5209., 5309.,
       5353., 5435., 5435., 5514., 5520., 5529., 5537., 5560., 5653.,
       5688., 5751., 5825., 5833., 5950., 5989., 6038., 6102., 6145.,
       6217., 6222., 6239., 6239., 6304., 6324., 6465., 6493., 6537.,
       6564., 6624., 6692., 6695., 6834., 6865., 6867., 6911., 6958.,
       6964., 6981., 7016., 7104., 7218., 7225., 7352., 7352., 7397.,
       7430., 7540., 7686., 7693., 7718., 7727., 7729., 7740., 7757.,
       7771., 7772., 7817., 7911., 7939., 7943., 8005., 8006., 8015.,
       8082., 8092., 8191., 8246., 8246., 8247., 8348., 8350., 8351.,
       8367., 8507., 8530., 8643., 8653., 8654., 8695., 8696., 8724.,
       8726., 8748., 8777., 8778., 8803., 8905., 8905., 8932., 8972.])
In [142]:
np.histogram(sac_cumsum, bins = np.arange(0, 10000, 1000))
Out[142]:
(array([29, 18, 26, 25, 26, 26, 23, 22, 30]),
 array([   0, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000]))

Test

In [143]:
a = np.array([1,2,3,4])
print(a[::-1])
[5 4 3 2 1]
In [146]:
a = np.array([1,2,3,4])
a[0] = 0.9
print(a[0], a.dtype)
0 int64
In [145]:
a
Out[145]:
array([0, 2, 3, 4])
In [147]:
a = np.arange(3)
b = a.reshape(2,2)
print(b)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-147-43873270aa4b> in <module>()
      1 a = np.arange(3)
----> 2 b = a.reshape(2,2)
      3 print(b)

ValueError: cannot reshape array of size 3 into shape (2,2)
In [149]:
a = np.array([1,2,3,4, 5])
print(a[2:None])
[3 4 5]
In [150]:
a = np.arange(10)
b = np.where(a % 2 == 1, 1, a)
print(b)
[0 1 2 1 4 1 6 1 8 1]
In [151]:
a = np.array([[1,2,3], [4,5,6]])
print(a[1][2])
6
In [153]:
a = np.array([3,6,9,12,15])
b = np.array([2,3,4,5,12])
c = np.where(a == b)
print(c[0])
[]
In [ ]: