Last active
December 21, 2017 10:18
-
-
Save Kelvinrr/df1e6fd9e4ec87ca2d4bce400a7c257a to your computer and use it in GitHub Desktop.
HCube access
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pandas as pd\n", | |
| "import random as rand\n", | |
| "from math import isclose\n", | |
| "\n", | |
| "import numpy as np\n", | |
| "from functools import singledispatch, update_wrapper" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def find_nearest(value, array, tolerance=1):\n", | |
| " \"\"\"\n", | |
| " finds the nearest value within some tolerance.\n", | |
| " \n", | |
| " Modified code originally jacked from Demitri\n", | |
| " https://stackoverflow.com/questions/2566412/find-nearest-value-in-numpy-array\n", | |
| " \n", | |
| " \"\"\"\n", | |
| " if value in array:\n", | |
| " return value\n", | |
| " \n", | |
| " idx = np.searchsorted(array, value, side=\"left\")\n", | |
| " # readability is for suckers \n", | |
| " nearest = array[idx - ((idx == len(array)) or (np.abs(value - array[idx-1]) < np.abs(value - array[idx]))) ] \n", | |
| " if not abs(nearest-value) <= tolerance:\n", | |
| " raise Exception('{} is not in {} with tolerance {}'.format(value, array, tolerance))\n", | |
| "\n", | |
| " return nearest \n", | |
| " \n", | |
| "\n", | |
| "def single_dispatch_method(func):\n", | |
| " \"\"\"\n", | |
| " straight up jacked from autocnet:\n", | |
| " https://github.com/USGS-Astrogeology/autocnet/blob/b9f050d87c0bc6232040bc7e1cae77d7522fb908/autocnet/utils/utils.py#L383\n", | |
| " \n", | |
| " New dispatch decorator that looks at the second argument to\n", | |
| " avoid self\n", | |
| " \n", | |
| " Parameters\n", | |
| " ----------\n", | |
| " func : Object\n", | |
| " Function object to be dispatched\n", | |
| " Returns\n", | |
| " wrapper : Object\n", | |
| " Wrapped function call chosen by the dispatcher\n", | |
| " ----------\n", | |
| " \"\"\"\n", | |
| " dispatcher = singledispatch(func)\n", | |
| "\n", | |
| " def wrapper(*args, **kw):\n", | |
| " return dispatcher.dispatch(args[1].__class__)(*args, **kw)\n", | |
| "\n", | |
| " wrapper.register = dispatcher.register\n", | |
| " update_wrapper(wrapper, dispatcher)\n", | |
| " return wrapper\n", | |
| "\n", | |
| "\n", | |
| "class SpectrumIndexer(pd.core.indexing._LocIndexer):\n", | |
| " \"\"\"\n", | |
| " Decorators for dayz\n", | |
| " \"\"\"\n", | |
| " \n", | |
| " def __getitem__(self, key):\n", | |
| " index = self.obj.index\n", | |
| " columns = pd.Float64Index(self.obj.wavelengths).sort_values()\n", | |
| " \n", | |
| " if not isinstance(key, tuple):\n", | |
| " if not self.obj.index.is_lexsorted():\n", | |
| " self.obj.sort_index(inplace=True)\n", | |
| " return HCube(super(SpectrumIndexer, self).__getitem__(key), \\\n", | |
| " wavelengths=self.obj.wavelengths, meta=self.obj.global_meta)\n", | |
| " \n", | |
| " if self.obj._data.index.nlevels == 1: # we got 1-d index and multiple keys\n", | |
| " idx = self._subindices(key[0], index)\n", | |
| " cols = self._subindices(key[1], columns, get_nearest=True)\n", | |
| " return HCube(super(SpectrumIndexer, self).__getitem__(((idx), cols)), \\\n", | |
| " wavelengths=self.obj.wavelengths, meta=self.obj.global_meta)\n", | |
| " \n", | |
| " elif self.obj._data.index.nlevels > 1: # we got a multiindex and multiple keys \n", | |
| " if not self.obj._data.index.is_lexsorted():\n", | |
| " self.obj._data.sort_index(inplace=True)\n", | |
| " \n", | |
| " dimension = self.ndim+1\n", | |
| " \n", | |
| " row_keys = key[:self.ndim]\n", | |
| " column_keys = key[self.ndim:dimension][0]\n", | |
| " \n", | |
| " subindices = tuple(self._subindices(key, index.levels[i]) \\\n", | |
| " for i,key in enumerate(row_keys))\n", | |
| "\n", | |
| " subcolumns = self._subindices(column_keys, columns, get_nearest=True)\n", | |
| " if len(subcolumns) == 0:\n", | |
| " subcolumns = slice(None, None, None)\n", | |
| " \n", | |
| " return HCube(super(SpectrumIndexer, self).__getitem__(((subindices),subcolumns)), \\\n", | |
| " wavelengths=self.obj.wavelengths, meta=self.obj.global_meta)\n", | |
| " else:\n", | |
| " return HCube(super(SpectrumIndexer, self).__getitem__(key), \\\n", | |
| " wavelengths=self.obj.wavelengths, meta=self.obj.global_meta)\n", | |
| " \n", | |
| " \n", | |
| " @single_dispatch_method\n", | |
| " def _subindices(self, s, indices):\n", | |
| " raise Exception()\n", | |
| "\n", | |
| " \n", | |
| " @_subindices.register(tuple)\n", | |
| " @_subindices.register(list)\n", | |
| " @_subindices.register(set)\n", | |
| " def _(self, iterable, indices, get_nearest=False):\n", | |
| " if get_nearest:\n", | |
| " subindices = []\n", | |
| " for elem in iterable:\n", | |
| " subindices.append(find_nearest(elem, indices, tolerance=self.tolerance))\n", | |
| " return subindices\n", | |
| " return iterable\n", | |
| " \n", | |
| " @_subindices.register(int)\n", | |
| " @_subindices.register(float)\n", | |
| " def _(self, scalar, indices, get_nearest=False):\n", | |
| " if get_nearest:\n", | |
| " return find_nearest(scalar, indices, tolerance=self.tolerance)\n", | |
| " return indices\n", | |
| " \n", | |
| " \n", | |
| " @_subindices.register(slice)\n", | |
| " def _(self, s, indices, get_nearest=False):\n", | |
| " if get_nearest:\n", | |
| " if s.start is None:\n", | |
| " start = indices[0]\n", | |
| " else:\n", | |
| " try:\n", | |
| " start = self._subindices(s.start, indices, True) \n", | |
| " except Exception as e:\n", | |
| " start = s.start\n", | |
| " \n", | |
| " if s.stop is None:\n", | |
| " stop = indices[-1]\n", | |
| " \n", | |
| " else:\n", | |
| " try:\n", | |
| " stop = self._subindices(s.stop, indices, True) \n", | |
| " except Exception as e:\n", | |
| " stop = s.stop\n", | |
| " \n", | |
| " idx = indices.where((indices >= start) & (indices <= stop))\n", | |
| " idx = idx.dropna().astype(indices.dtype)\n", | |
| " return self._subindices(list(idx), indices, get_nearest)\n", | |
| " else:\n", | |
| " return s\n", | |
| " \n", | |
| " @property\n", | |
| " def tolerance(self):\n", | |
| " if not hasattr(self, '_tolerance'):\n", | |
| " self._tolerance = .5\n", | |
| " return self._tolerance\n", | |
| " \n", | |
| " @tolerance.setter\n", | |
| " def tolerance(self, val):\n", | |
| " self._tolerance = val\n", | |
| "\n", | |
| "class HCube(object):\n", | |
| " \n", | |
| " def __init__(self, df = None, wavelengths=[], meta={}):\n", | |
| " if df is not None:\n", | |
| " self._data = df\n", | |
| " else:\n", | |
| " self._data = pd.DataFrame()\n", | |
| " \n", | |
| " name = self._data.loc.name\n", | |
| " self.wavelengths = wavelengths\n", | |
| " self.spectra_meta = set(df.columns) - self.wavelengths\n", | |
| " self.global_meta = meta\n", | |
| " self._loc = SpectrumIndexer(name=name, obj=self)\n", | |
| " self._get_axis = self._data._get_axis\n", | |
| " self._get_axis_name = self._data._get_axis_name\n", | |
| " self._slice = self._data._slice\n", | |
| " \n", | |
| " def __repr__(self):\n", | |
| " return self._data.__repr__()\n", | |
| " \n", | |
| " @property\n", | |
| " def loc(self):\n", | |
| " return self._loc\n", | |
| " \n", | |
| " \n", | |
| " @property\n", | |
| " def iloc(self):\n", | |
| " return self._data.iloc\n", | |
| " \n", | |
| " def head(self, n=5):\n", | |
| " return self._data.head()\n", | |
| " \n", | |
| " @property\n", | |
| " def index(self):\n", | |
| " return self._data.index\n", | |
| " \n", | |
| " @property\n", | |
| " def ndim(self):\n", | |
| " return self._data.ndim\n", | |
| " \n", | |
| " @property\n", | |
| " def axes(self):\n", | |
| " return self._data.axes" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 2-D Index Test" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1060, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "columns = sorted([rand.random()*1000 for i in range(30)])\n", | |
| "columns.extend(['x','y'])\n", | |
| "\n", | |
| "data = [dict(zip(columns, [rand.randint(10,200) for i in range(len(columns))] )) for i in range(1,100)]\n", | |
| "qub = pd.DataFrame(data).set_index(['x','y'])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1061, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th>112.593334748</th>\n", | |
| " <th>129.389856567</th>\n", | |
| " <th>154.496441322</th>\n", | |
| " <th>193.043066668</th>\n", | |
| " <th>205.306583964</th>\n", | |
| " <th>210.735575478</th>\n", | |
| " <th>245.571782708</th>\n", | |
| " <th>301.784422607</th>\n", | |
| " <th>350.713141862</th>\n", | |
| " <th>426.487235353</th>\n", | |
| " <th>...</th>\n", | |
| " <th>688.171241182</th>\n", | |
| " <th>769.957168731</th>\n", | |
| " <th>787.991666616</th>\n", | |
| " <th>793.068903122</th>\n", | |
| " <th>837.149042997</th>\n", | |
| " <th>860.743744068</th>\n", | |
| " <th>875.920110292</th>\n", | |
| " <th>909.151617095</th>\n", | |
| " <th>921.367931444</th>\n", | |
| " <th>967.525103388</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>78</th>\n", | |
| " <th>165</th>\n", | |
| " <td>164</td>\n", | |
| " <td>107</td>\n", | |
| " <td>38</td>\n", | |
| " <td>176</td>\n", | |
| " <td>79</td>\n", | |
| " <td>73</td>\n", | |
| " <td>114</td>\n", | |
| " <td>21</td>\n", | |
| " <td>36</td>\n", | |
| " <td>22</td>\n", | |
| " <td>...</td>\n", | |
| " <td>106</td>\n", | |
| " <td>182</td>\n", | |
| " <td>189</td>\n", | |
| " <td>28</td>\n", | |
| " <td>115</td>\n", | |
| " <td>117</td>\n", | |
| " <td>92</td>\n", | |
| " <td>155</td>\n", | |
| " <td>125</td>\n", | |
| " <td>69</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>97</th>\n", | |
| " <th>40</th>\n", | |
| " <td>145</td>\n", | |
| " <td>38</td>\n", | |
| " <td>159</td>\n", | |
| " <td>131</td>\n", | |
| " <td>90</td>\n", | |
| " <td>102</td>\n", | |
| " <td>176</td>\n", | |
| " <td>129</td>\n", | |
| " <td>118</td>\n", | |
| " <td>170</td>\n", | |
| " <td>...</td>\n", | |
| " <td>38</td>\n", | |
| " <td>13</td>\n", | |
| " <td>11</td>\n", | |
| " <td>117</td>\n", | |
| " <td>182</td>\n", | |
| " <td>118</td>\n", | |
| " <td>73</td>\n", | |
| " <td>54</td>\n", | |
| " <td>183</td>\n", | |
| " <td>31</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>150</th>\n", | |
| " <th>59</th>\n", | |
| " <td>88</td>\n", | |
| " <td>77</td>\n", | |
| " <td>189</td>\n", | |
| " <td>57</td>\n", | |
| " <td>180</td>\n", | |
| " <td>152</td>\n", | |
| " <td>147</td>\n", | |
| " <td>80</td>\n", | |
| " <td>16</td>\n", | |
| " <td>75</td>\n", | |
| " <td>...</td>\n", | |
| " <td>188</td>\n", | |
| " <td>64</td>\n", | |
| " <td>127</td>\n", | |
| " <td>36</td>\n", | |
| " <td>147</td>\n", | |
| " <td>75</td>\n", | |
| " <td>75</td>\n", | |
| " <td>113</td>\n", | |
| " <td>97</td>\n", | |
| " <td>54</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>132</th>\n", | |
| " <th>132</th>\n", | |
| " <td>164</td>\n", | |
| " <td>61</td>\n", | |
| " <td>50</td>\n", | |
| " <td>196</td>\n", | |
| " <td>158</td>\n", | |
| " <td>103</td>\n", | |
| " <td>70</td>\n", | |
| " <td>54</td>\n", | |
| " <td>93</td>\n", | |
| " <td>162</td>\n", | |
| " <td>...</td>\n", | |
| " <td>147</td>\n", | |
| " <td>57</td>\n", | |
| " <td>13</td>\n", | |
| " <td>42</td>\n", | |
| " <td>121</td>\n", | |
| " <td>179</td>\n", | |
| " <td>131</td>\n", | |
| " <td>118</td>\n", | |
| " <td>93</td>\n", | |
| " <td>91</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>59</th>\n", | |
| " <th>120</th>\n", | |
| " <td>37</td>\n", | |
| " <td>65</td>\n", | |
| " <td>126</td>\n", | |
| " <td>134</td>\n", | |
| " <td>13</td>\n", | |
| " <td>81</td>\n", | |
| " <td>158</td>\n", | |
| " <td>43</td>\n", | |
| " <td>10</td>\n", | |
| " <td>171</td>\n", | |
| " <td>...</td>\n", | |
| " <td>166</td>\n", | |
| " <td>195</td>\n", | |
| " <td>192</td>\n", | |
| " <td>135</td>\n", | |
| " <td>76</td>\n", | |
| " <td>30</td>\n", | |
| " <td>164</td>\n", | |
| " <td>75</td>\n", | |
| " <td>129</td>\n", | |
| " <td>163</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>5 rows × 30 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 112.593335 129.389857 154.496441 193.043067 205.306584 \\\n", | |
| "x y \n", | |
| "78 165 164 107 38 176 79 \n", | |
| "97 40 145 38 159 131 90 \n", | |
| "150 59 88 77 189 57 180 \n", | |
| "132 132 164 61 50 196 158 \n", | |
| "59 120 37 65 126 134 13 \n", | |
| "\n", | |
| " 210.735575 245.571783 301.784423 350.713142 426.487235 \\\n", | |
| "x y \n", | |
| "78 165 73 114 21 36 22 \n", | |
| "97 40 102 176 129 118 170 \n", | |
| "150 59 152 147 80 16 75 \n", | |
| "132 132 103 70 54 93 162 \n", | |
| "59 120 81 158 43 10 171 \n", | |
| "\n", | |
| " ... 688.171241 769.957169 787.991667 793.068903 \\\n", | |
| "x y ... \n", | |
| "78 165 ... 106 182 189 28 \n", | |
| "97 40 ... 38 13 11 117 \n", | |
| "150 59 ... 188 64 127 36 \n", | |
| "132 132 ... 147 57 13 42 \n", | |
| "59 120 ... 166 195 192 135 \n", | |
| "\n", | |
| " 837.149043 860.743744 875.920110 909.151617 921.367931 \\\n", | |
| "x y \n", | |
| "78 165 115 117 92 155 125 \n", | |
| "97 40 182 118 73 54 183 \n", | |
| "150 59 147 75 75 113 97 \n", | |
| "132 132 121 179 131 118 93 \n", | |
| "59 120 76 30 164 75 129 \n", | |
| "\n", | |
| " 967.525103 \n", | |
| "x y \n", | |
| "78 165 69 \n", | |
| "97 40 31 \n", | |
| "150 59 54 \n", | |
| "132 132 91 \n", | |
| "59 120 163 \n", | |
| "\n", | |
| "[5 rows x 30 columns]" | |
| ] | |
| }, | |
| "execution_count": 1061, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data = HCube(qub, wavelengths = set(qub.columns)-{'x','y'})\n", | |
| "data.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1063, | |
| "metadata": { | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th>154.496441322</th>\n", | |
| " <th>193.043066668</th>\n", | |
| " <th>205.306583964</th>\n", | |
| " <th>210.735575478</th>\n", | |
| " <th>245.571782708</th>\n", | |
| " <th>301.784422607</th>\n", | |
| " <th>350.713141862</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>98</th>\n", | |
| " <th>132</th>\n", | |
| " <td>30</td>\n", | |
| " <td>166</td>\n", | |
| " <td>110</td>\n", | |
| " <td>61</td>\n", | |
| " <td>87</td>\n", | |
| " <td>77</td>\n", | |
| " <td>14</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th rowspan=\"2\" valign=\"top\">100</th>\n", | |
| " <th>148</th>\n", | |
| " <td>125</td>\n", | |
| " <td>26</td>\n", | |
| " <td>89</td>\n", | |
| " <td>23</td>\n", | |
| " <td>122</td>\n", | |
| " <td>50</td>\n", | |
| " <td>29</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>167</th>\n", | |
| " <td>159</td>\n", | |
| " <td>181</td>\n", | |
| " <td>89</td>\n", | |
| " <td>95</td>\n", | |
| " <td>96</td>\n", | |
| " <td>129</td>\n", | |
| " <td>108</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>102</th>\n", | |
| " <th>118</th>\n", | |
| " <td>97</td>\n", | |
| " <td>95</td>\n", | |
| " <td>121</td>\n", | |
| " <td>164</td>\n", | |
| " <td>12</td>\n", | |
| " <td>11</td>\n", | |
| " <td>87</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>103</th>\n", | |
| " <th>137</th>\n", | |
| " <td>173</td>\n", | |
| " <td>12</td>\n", | |
| " <td>84</td>\n", | |
| " <td>95</td>\n", | |
| " <td>103</td>\n", | |
| " <td>141</td>\n", | |
| " <td>191</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 154.496441 193.043067 205.306584 210.735575 245.571783 \\\n", | |
| "x y \n", | |
| "98 132 30 166 110 61 87 \n", | |
| "100 148 125 26 89 23 122 \n", | |
| " 167 159 181 89 95 96 \n", | |
| "102 118 97 95 121 164 12 \n", | |
| "103 137 173 12 84 95 103 \n", | |
| "\n", | |
| " 301.784423 350.713142 \n", | |
| "x y \n", | |
| "98 132 77 14 \n", | |
| "100 148 50 29 \n", | |
| " 167 129 108 \n", | |
| "102 118 11 87 \n", | |
| "103 137 141 191 " | |
| ] | |
| }, | |
| "execution_count": 1063, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Slicing the spectral data also utilizes the tolerence \n", | |
| "data.loc[94:200, 100:200, 142.5:400].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1064, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th>112.593334748</th>\n", | |
| " <th>129.389856567</th>\n", | |
| " <th>154.496441322</th>\n", | |
| " <th>193.043066668</th>\n", | |
| " <th>205.306583964</th>\n", | |
| " <th>210.735575478</th>\n", | |
| " <th>245.571782708</th>\n", | |
| " <th>301.784422607</th>\n", | |
| " <th>350.713141862</th>\n", | |
| " <th>426.487235353</th>\n", | |
| " <th>...</th>\n", | |
| " <th>688.171241182</th>\n", | |
| " <th>769.957168731</th>\n", | |
| " <th>787.991666616</th>\n", | |
| " <th>793.068903122</th>\n", | |
| " <th>837.149042997</th>\n", | |
| " <th>860.743744068</th>\n", | |
| " <th>875.920110292</th>\n", | |
| " <th>909.151617095</th>\n", | |
| " <th>921.367931444</th>\n", | |
| " <th>967.525103388</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <th>105</th>\n", | |
| " <td>173</td>\n", | |
| " <td>75</td>\n", | |
| " <td>28</td>\n", | |
| " <td>124</td>\n", | |
| " <td>161</td>\n", | |
| " <td>156</td>\n", | |
| " <td>76</td>\n", | |
| " <td>13</td>\n", | |
| " <td>33</td>\n", | |
| " <td>176</td>\n", | |
| " <td>...</td>\n", | |
| " <td>184</td>\n", | |
| " <td>16</td>\n", | |
| " <td>129</td>\n", | |
| " <td>144</td>\n", | |
| " <td>22</td>\n", | |
| " <td>61</td>\n", | |
| " <td>75</td>\n", | |
| " <td>118</td>\n", | |
| " <td>50</td>\n", | |
| " <td>112</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <th>121</th>\n", | |
| " <td>84</td>\n", | |
| " <td>158</td>\n", | |
| " <td>86</td>\n", | |
| " <td>120</td>\n", | |
| " <td>159</td>\n", | |
| " <td>188</td>\n", | |
| " <td>13</td>\n", | |
| " <td>119</td>\n", | |
| " <td>136</td>\n", | |
| " <td>49</td>\n", | |
| " <td>...</td>\n", | |
| " <td>134</td>\n", | |
| " <td>16</td>\n", | |
| " <td>28</td>\n", | |
| " <td>22</td>\n", | |
| " <td>49</td>\n", | |
| " <td>195</td>\n", | |
| " <td>169</td>\n", | |
| " <td>121</td>\n", | |
| " <td>180</td>\n", | |
| " <td>173</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <th>103</th>\n", | |
| " <td>71</td>\n", | |
| " <td>75</td>\n", | |
| " <td>93</td>\n", | |
| " <td>70</td>\n", | |
| " <td>63</td>\n", | |
| " <td>159</td>\n", | |
| " <td>108</td>\n", | |
| " <td>28</td>\n", | |
| " <td>89</td>\n", | |
| " <td>51</td>\n", | |
| " <td>...</td>\n", | |
| " <td>61</td>\n", | |
| " <td>146</td>\n", | |
| " <td>61</td>\n", | |
| " <td>180</td>\n", | |
| " <td>44</td>\n", | |
| " <td>115</td>\n", | |
| " <td>76</td>\n", | |
| " <td>26</td>\n", | |
| " <td>67</td>\n", | |
| " <td>65</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <th>198</th>\n", | |
| " <td>126</td>\n", | |
| " <td>54</td>\n", | |
| " <td>39</td>\n", | |
| " <td>77</td>\n", | |
| " <td>141</td>\n", | |
| " <td>156</td>\n", | |
| " <td>173</td>\n", | |
| " <td>33</td>\n", | |
| " <td>174</td>\n", | |
| " <td>147</td>\n", | |
| " <td>...</td>\n", | |
| " <td>43</td>\n", | |
| " <td>165</td>\n", | |
| " <td>134</td>\n", | |
| " <td>138</td>\n", | |
| " <td>120</td>\n", | |
| " <td>118</td>\n", | |
| " <td>149</td>\n", | |
| " <td>45</td>\n", | |
| " <td>59</td>\n", | |
| " <td>153</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <th>20</th>\n", | |
| " <td>33</td>\n", | |
| " <td>157</td>\n", | |
| " <td>131</td>\n", | |
| " <td>116</td>\n", | |
| " <td>73</td>\n", | |
| " <td>132</td>\n", | |
| " <td>170</td>\n", | |
| " <td>101</td>\n", | |
| " <td>123</td>\n", | |
| " <td>143</td>\n", | |
| " <td>...</td>\n", | |
| " <td>65</td>\n", | |
| " <td>180</td>\n", | |
| " <td>186</td>\n", | |
| " <td>93</td>\n", | |
| " <td>49</td>\n", | |
| " <td>177</td>\n", | |
| " <td>68</td>\n", | |
| " <td>130</td>\n", | |
| " <td>155</td>\n", | |
| " <td>177</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>5 rows × 30 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 112.593335 129.389857 154.496441 193.043067 205.306584 \\\n", | |
| "x y \n", | |
| "12 105 173 75 28 124 161 \n", | |
| "13 121 84 158 86 120 159 \n", | |
| "17 103 71 75 93 70 63 \n", | |
| "19 198 126 54 39 77 141 \n", | |
| "22 20 33 157 131 116 73 \n", | |
| "\n", | |
| " 210.735575 245.571783 301.784423 350.713142 426.487235 \\\n", | |
| "x y \n", | |
| "12 105 156 76 13 33 176 \n", | |
| "13 121 188 13 119 136 49 \n", | |
| "17 103 159 108 28 89 51 \n", | |
| "19 198 156 173 33 174 147 \n", | |
| "22 20 132 170 101 123 143 \n", | |
| "\n", | |
| " ... 688.171241 769.957169 787.991667 793.068903 \\\n", | |
| "x y ... \n", | |
| "12 105 ... 184 16 129 144 \n", | |
| "13 121 ... 134 16 28 22 \n", | |
| "17 103 ... 61 146 61 180 \n", | |
| "19 198 ... 43 165 134 138 \n", | |
| "22 20 ... 65 180 186 93 \n", | |
| "\n", | |
| " 837.149043 860.743744 875.920110 909.151617 921.367931 967.525103 \n", | |
| "x y \n", | |
| "12 105 22 61 75 118 50 112 \n", | |
| "13 121 49 195 169 121 180 173 \n", | |
| "17 103 44 115 76 26 67 65 \n", | |
| "19 198 120 118 149 45 59 153 \n", | |
| "22 20 49 177 68 130 155 177 \n", | |
| "\n", | |
| "[5 rows x 30 columns]" | |
| ] | |
| }, | |
| "execution_count": 1064, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.loc[12:50,:,:].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1065, | |
| "metadata": { | |
| "scrolled": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th>129.389856567</th>\n", | |
| " <th>154.496441322</th>\n", | |
| " <th>193.043066668</th>\n", | |
| " <th>205.306583964</th>\n", | |
| " <th>210.735575478</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <th>105</th>\n", | |
| " <td>75</td>\n", | |
| " <td>28</td>\n", | |
| " <td>124</td>\n", | |
| " <td>161</td>\n", | |
| " <td>156</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <th>121</th>\n", | |
| " <td>158</td>\n", | |
| " <td>86</td>\n", | |
| " <td>120</td>\n", | |
| " <td>159</td>\n", | |
| " <td>188</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <th>103</th>\n", | |
| " <td>75</td>\n", | |
| " <td>93</td>\n", | |
| " <td>70</td>\n", | |
| " <td>63</td>\n", | |
| " <td>159</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <th>198</th>\n", | |
| " <td>54</td>\n", | |
| " <td>39</td>\n", | |
| " <td>77</td>\n", | |
| " <td>141</td>\n", | |
| " <td>156</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <th>119</th>\n", | |
| " <td>15</td>\n", | |
| " <td>129</td>\n", | |
| " <td>127</td>\n", | |
| " <td>11</td>\n", | |
| " <td>78</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 129.389857 154.496441 193.043067 205.306584 210.735575\n", | |
| "x y \n", | |
| "12 105 75 28 124 161 156\n", | |
| "13 121 158 86 120 159 188\n", | |
| "17 103 75 93 70 63 159\n", | |
| "19 198 54 39 77 141 156\n", | |
| "23 119 15 129 127 11 78" | |
| ] | |
| }, | |
| "execution_count": 1065, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.loc[12:90,100:200,118:231].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1067, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th>129.389856567</th>\n", | |
| " <th>205.306583964</th>\n", | |
| " <th>426.487235353</th>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>x</th>\n", | |
| " <th>y</th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " <th></th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <th>105</th>\n", | |
| " <td>75</td>\n", | |
| " <td>161</td>\n", | |
| " <td>176</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <th>121</th>\n", | |
| " <td>158</td>\n", | |
| " <td>159</td>\n", | |
| " <td>49</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <th>103</th>\n", | |
| " <td>75</td>\n", | |
| " <td>63</td>\n", | |
| " <td>51</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <th>198</th>\n", | |
| " <td>54</td>\n", | |
| " <td>141</td>\n", | |
| " <td>147</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <th>119</th>\n", | |
| " <td>15</td>\n", | |
| " <td>11</td>\n", | |
| " <td>32</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 129.389857 205.306584 426.487235\n", | |
| "x y \n", | |
| "12 105 75 161 176\n", | |
| "13 121 158 159 49\n", | |
| "17 103 75 63 51\n", | |
| "19 198 54 141 147\n", | |
| "23 119 15 11 32" | |
| ] | |
| }, | |
| "execution_count": 1067, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.loc[12:90,100:200, [129, 205, 426]].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 1-D Index test" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>26.818193737</th>\n", | |
| " <th>27.6305805034</th>\n", | |
| " <th>167.288847253</th>\n", | |
| " <th>208.26146399</th>\n", | |
| " <th>266.216218131</th>\n", | |
| " <th>310.13902713</th>\n", | |
| " <th>329.231592919</th>\n", | |
| " <th>332.391477572</th>\n", | |
| " <th>358.353097333</th>\n", | |
| " <th>368.886624598</th>\n", | |
| " <th>...</th>\n", | |
| " <th>599.051848506</th>\n", | |
| " <th>646.458942876</th>\n", | |
| " <th>660.765893258</th>\n", | |
| " <th>672.982391116</th>\n", | |
| " <th>716.112037224</th>\n", | |
| " <th>807.993680782</th>\n", | |
| " <th>813.513459622</th>\n", | |
| " <th>914.427411278</th>\n", | |
| " <th>959.619088829</th>\n", | |
| " <th>982.942300682</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>149</td>\n", | |
| " <td>193</td>\n", | |
| " <td>88</td>\n", | |
| " <td>13</td>\n", | |
| " <td>89</td>\n", | |
| " <td>93</td>\n", | |
| " <td>59</td>\n", | |
| " <td>46</td>\n", | |
| " <td>24</td>\n", | |
| " <td>13</td>\n", | |
| " <td>...</td>\n", | |
| " <td>195</td>\n", | |
| " <td>194</td>\n", | |
| " <td>59</td>\n", | |
| " <td>111</td>\n", | |
| " <td>87</td>\n", | |
| " <td>40</td>\n", | |
| " <td>76</td>\n", | |
| " <td>64</td>\n", | |
| " <td>55</td>\n", | |
| " <td>73</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>96</td>\n", | |
| " <td>166</td>\n", | |
| " <td>158</td>\n", | |
| " <td>57</td>\n", | |
| " <td>109</td>\n", | |
| " <td>31</td>\n", | |
| " <td>61</td>\n", | |
| " <td>12</td>\n", | |
| " <td>187</td>\n", | |
| " <td>181</td>\n", | |
| " <td>...</td>\n", | |
| " <td>35</td>\n", | |
| " <td>70</td>\n", | |
| " <td>187</td>\n", | |
| " <td>23</td>\n", | |
| " <td>46</td>\n", | |
| " <td>106</td>\n", | |
| " <td>147</td>\n", | |
| " <td>32</td>\n", | |
| " <td>33</td>\n", | |
| " <td>182</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>192</td>\n", | |
| " <td>132</td>\n", | |
| " <td>178</td>\n", | |
| " <td>16</td>\n", | |
| " <td>162</td>\n", | |
| " <td>184</td>\n", | |
| " <td>192</td>\n", | |
| " <td>146</td>\n", | |
| " <td>147</td>\n", | |
| " <td>199</td>\n", | |
| " <td>...</td>\n", | |
| " <td>169</td>\n", | |
| " <td>196</td>\n", | |
| " <td>34</td>\n", | |
| " <td>117</td>\n", | |
| " <td>180</td>\n", | |
| " <td>79</td>\n", | |
| " <td>123</td>\n", | |
| " <td>92</td>\n", | |
| " <td>191</td>\n", | |
| " <td>141</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>22</td>\n", | |
| " <td>91</td>\n", | |
| " <td>12</td>\n", | |
| " <td>125</td>\n", | |
| " <td>76</td>\n", | |
| " <td>145</td>\n", | |
| " <td>58</td>\n", | |
| " <td>90</td>\n", | |
| " <td>142</td>\n", | |
| " <td>198</td>\n", | |
| " <td>...</td>\n", | |
| " <td>134</td>\n", | |
| " <td>96</td>\n", | |
| " <td>101</td>\n", | |
| " <td>80</td>\n", | |
| " <td>55</td>\n", | |
| " <td>165</td>\n", | |
| " <td>150</td>\n", | |
| " <td>26</td>\n", | |
| " <td>170</td>\n", | |
| " <td>92</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>13</td>\n", | |
| " <td>158</td>\n", | |
| " <td>110</td>\n", | |
| " <td>16</td>\n", | |
| " <td>52</td>\n", | |
| " <td>176</td>\n", | |
| " <td>68</td>\n", | |
| " <td>181</td>\n", | |
| " <td>131</td>\n", | |
| " <td>182</td>\n", | |
| " <td>...</td>\n", | |
| " <td>126</td>\n", | |
| " <td>53</td>\n", | |
| " <td>22</td>\n", | |
| " <td>112</td>\n", | |
| " <td>195</td>\n", | |
| " <td>183</td>\n", | |
| " <td>172</td>\n", | |
| " <td>149</td>\n", | |
| " <td>159</td>\n", | |
| " <td>75</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>5 rows × 30 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 26.818194 27.630581 167.288847 208.261464 266.216218 310.139027 \\\n", | |
| "0 149 193 88 13 89 93 \n", | |
| "1 96 166 158 57 109 31 \n", | |
| "2 192 132 178 16 162 184 \n", | |
| "3 22 91 12 125 76 145 \n", | |
| "4 13 158 110 16 52 176 \n", | |
| "\n", | |
| " 329.231593 332.391478 358.353097 368.886625 ... 599.051849 \\\n", | |
| "0 59 46 24 13 ... 195 \n", | |
| "1 61 12 187 181 ... 35 \n", | |
| "2 192 146 147 199 ... 169 \n", | |
| "3 58 90 142 198 ... 134 \n", | |
| "4 68 181 131 182 ... 126 \n", | |
| "\n", | |
| " 646.458943 660.765893 672.982391 716.112037 807.993681 813.513460 \\\n", | |
| "0 194 59 111 87 40 76 \n", | |
| "1 70 187 23 46 106 147 \n", | |
| "2 196 34 117 180 79 123 \n", | |
| "3 96 101 80 55 165 150 \n", | |
| "4 53 22 112 195 183 172 \n", | |
| "\n", | |
| " 914.427411 959.619089 982.942301 \n", | |
| "0 64 55 73 \n", | |
| "1 32 33 182 \n", | |
| "2 92 191 141 \n", | |
| "3 26 170 92 \n", | |
| "4 149 159 75 \n", | |
| "\n", | |
| "[5 rows x 30 columns]" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "columns = sorted([rand.random()*1000 for i in range(30)])\n", | |
| "\n", | |
| "data = [dict(zip(columns, [rand.randint(10,200) for i in range(len(columns))] )) for i in range(1,100)]\n", | |
| "qub = pd.DataFrame(data)\n", | |
| "data = HCube(qub, wavelengths = set(qub.columns))\n", | |
| "data.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>26.818193737</th>\n", | |
| " <th>27.6305805034</th>\n", | |
| " <th>167.288847253</th>\n", | |
| " <th>208.26146399</th>\n", | |
| " <th>266.216218131</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>116</td>\n", | |
| " <td>126</td>\n", | |
| " <td>46</td>\n", | |
| " <td>49</td>\n", | |
| " <td>37</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>84</td>\n", | |
| " <td>121</td>\n", | |
| " <td>58</td>\n", | |
| " <td>135</td>\n", | |
| " <td>151</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>54</td>\n", | |
| " <td>102</td>\n", | |
| " <td>168</td>\n", | |
| " <td>145</td>\n", | |
| " <td>161</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>190</td>\n", | |
| " <td>59</td>\n", | |
| " <td>199</td>\n", | |
| " <td>119</td>\n", | |
| " <td>106</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>156</td>\n", | |
| " <td>30</td>\n", | |
| " <td>188</td>\n", | |
| " <td>57</td>\n", | |
| " <td>165</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 26.818194 27.630581 167.288847 208.261464 266.216218\n", | |
| "6 116 126 46 49 37\n", | |
| "7 84 121 58 135 151\n", | |
| "8 54 102 168 145 161\n", | |
| "9 190 59 199 119 106\n", | |
| "10 156 30 188 57 165" | |
| ] | |
| }, | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.loc[6:100, 3:266].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>167.288847253</th>\n", | |
| " <th>266.216218131</th>\n", | |
| " <th>368.886624598</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>46</td>\n", | |
| " <td>37</td>\n", | |
| " <td>187</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>58</td>\n", | |
| " <td>151</td>\n", | |
| " <td>129</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>168</td>\n", | |
| " <td>161</td>\n", | |
| " <td>161</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>199</td>\n", | |
| " <td>106</td>\n", | |
| " <td>158</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>188</td>\n", | |
| " <td>165</td>\n", | |
| " <td>79</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 167.288847 266.216218 368.886625\n", | |
| "6 46 37 187\n", | |
| "7 58 151 129\n", | |
| "8 168 161 161\n", | |
| "9 199 106 158\n", | |
| "10 188 165 79" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "data.loc[6:100, [167, 266, 369]].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style>\n", | |
| " .dataframe thead tr:only-child th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: left;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>266.216218131</th>\n", | |
| " <th>266.216218131</th>\n", | |
| " <th>266.216218131</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>37</td>\n", | |
| " <td>37</td>\n", | |
| " <td>37</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>151</td>\n", | |
| " <td>151</td>\n", | |
| " <td>151</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>161</td>\n", | |
| " <td>161</td>\n", | |
| " <td>161</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>106</td>\n", | |
| " <td>106</td>\n", | |
| " <td>106</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>165</td>\n", | |
| " <td>165</td>\n", | |
| " <td>165</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " 266.216218 266.216218 266.216218\n", | |
| "6 37 37 37\n", | |
| "7 151 151 151\n", | |
| "8 161 161 161\n", | |
| "9 106 106 106\n", | |
| "10 165 165 165" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Should this throw an ambiguous index error or some such?\n", | |
| "data.loc.tolerance = 10\n", | |
| "data.loc[6:100, [260, 266, 271]].head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.6.3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment