Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save brandon-b-miller/d2e589f06a8c03bf81e9b21e64bdc1de to your computer and use it in GitHub Desktop.
Save brandon-b-miller/d2e589f06a8c03bf81e9b21e64bdc1de to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/nfs/brmiller/anaconda/envs/cudf_dev/lib/python3.7/site-packages/numba/cuda/envvars.py:17: NumbaWarning: \n",
"Environment variables with the 'NUMBAPRO' prefix are deprecated and consequently ignored, found use of NUMBAPRO_NVVM=/usr/local/cuda-10.0//nvvm/lib64/libnvvm.so.\n",
"\n",
"For more information about alternatives visit: ('http://numba.pydata.org/numba-doc/latest/cuda/overview.html', '#cudatoolkit-lookup')\n",
" warnings.warn(errors.NumbaWarning(msg))\n",
"/home/nfs/brmiller/anaconda/envs/cudf_dev/lib/python3.7/site-packages/numba/cuda/envvars.py:17: NumbaWarning: \n",
"Environment variables with the 'NUMBAPRO' prefix are deprecated and consequently ignored, found use of NUMBAPRO_LIBDEVICE=/usr/local/cuda-10.0//nvvm/libdevice.\n",
"\n",
"For more information about alternatives visit: ('http://numba.pydata.org/numba-doc/latest/cuda/overview.html', '#cudatoolkit-lookup')\n",
" warnings.warn(errors.NumbaWarning(msg))\n"
]
}
],
"source": [
"import cudf\n",
"from cudf import Series, DataFrame\n",
"import numpy as np\n",
"import cProfile\n",
"import pandas as pd\n",
"import timeit\n",
"import matplotlib.pyplot as plt\n",
"import cudf._lib as libcudf\n",
"import itertools\n",
"from cudf.core import column\n",
"\n",
"cudf.set_allocator(pool=True)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def generate_data(num_rows, num_cols):\n",
"\n",
" num_rows = int(num_rows)\n",
" num_cols = int(num_cols)\n",
" \n",
" host_data = np.random.rand(num_rows, num_cols)\n",
" host_index = range(num_cols)\n",
"\n",
" host_df = pd.DataFrame(host_data, columns=host_index)\n",
" host_series = pd.Series(np.random.rand(num_cols), range(num_cols))\n",
"\n",
" gdf = cudf.DataFrame.from_pandas(host_df)\n",
" gsr = cudf.Series.from_pandas(host_series)\n",
" \n",
" return host_df, host_series, gdf, gsr\n",
"\n",
"def plot_results(pandas, cudf):\n",
" fig, ax = plt.subplots(figsize=(16,9))\n",
" #ax.set_xticklabels([0] +sizes)\n",
" ax.bar(range(len(pandas)), pandas, color='b', width=0.25, align='edge', label='pandas')\n",
" ax.bar(range(len(cudf)), cudf, color='r', width=-0.25, align='edge', label='cudf')\n",
" plt.legend()\n",
" \n",
"\n",
"def compare_impls():\n",
" ### bigger into the samller int \n",
"\n",
" result_pd = []\n",
" result_gd = []\n",
"\n",
" def f(): \n",
" r = host_df + host_sr\n",
" t = timeit.Timer(f)\n",
" res = t.timeit(number=1)\n",
" result_pd.append(res)\n",
"\n",
" def f():\n",
" r = g_df + g_sr\n",
" \n",
" t = timeit.Timer(f)\n",
" res = t.timeit(number=1)\n",
" result_gd.append(res)\n",
"\n",
" plot_results(result_pd, result_gd)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 10k x 10k "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"host_df, host_sr, g_df, g_sr = generate_data(1e4, 1e4)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>9990</th>\n",
" <th>9991</th>\n",
" <th>9992</th>\n",
" <th>9993</th>\n",
" <th>9994</th>\n",
" <th>9995</th>\n",
" <th>9996</th>\n",
" <th>9997</th>\n",
" <th>9998</th>\n",
" <th>9999</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.172719</td>\n",
" <td>0.707440</td>\n",
" <td>0.564283</td>\n",
" <td>0.285004</td>\n",
" <td>0.469305</td>\n",
" <td>0.151295</td>\n",
" <td>0.426103</td>\n",
" <td>0.008062</td>\n",
" <td>0.864924</td>\n",
" <td>0.446003</td>\n",
" <td>...</td>\n",
" <td>0.706989</td>\n",
" <td>0.888882</td>\n",
" <td>0.969575</td>\n",
" <td>0.990579</td>\n",
" <td>0.583530</td>\n",
" <td>0.413001</td>\n",
" <td>0.239235</td>\n",
" <td>0.543748</td>\n",
" <td>0.705777</td>\n",
" <td>0.646033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.887740</td>\n",
" <td>0.578609</td>\n",
" <td>0.187030</td>\n",
" <td>0.228984</td>\n",
" <td>0.129537</td>\n",
" <td>0.902626</td>\n",
" <td>0.640961</td>\n",
" <td>0.753340</td>\n",
" <td>0.043697</td>\n",
" <td>0.624264</td>\n",
" <td>...</td>\n",
" <td>0.671271</td>\n",
" <td>0.784039</td>\n",
" <td>0.297014</td>\n",
" <td>0.006449</td>\n",
" <td>0.824344</td>\n",
" <td>0.132587</td>\n",
" <td>0.092285</td>\n",
" <td>0.623396</td>\n",
" <td>0.158341</td>\n",
" <td>0.460423</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.178611</td>\n",
" <td>0.579793</td>\n",
" <td>0.423388</td>\n",
" <td>0.774751</td>\n",
" <td>0.698461</td>\n",
" <td>0.896830</td>\n",
" <td>0.096732</td>\n",
" <td>0.951842</td>\n",
" <td>0.681792</td>\n",
" <td>0.841288</td>\n",
" <td>...</td>\n",
" <td>0.262204</td>\n",
" <td>0.882996</td>\n",
" <td>0.781144</td>\n",
" <td>0.869756</td>\n",
" <td>0.142089</td>\n",
" <td>0.647511</td>\n",
" <td>0.205103</td>\n",
" <td>0.876117</td>\n",
" <td>0.254573</td>\n",
" <td>0.739447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.892965</td>\n",
" <td>0.287410</td>\n",
" <td>0.094607</td>\n",
" <td>0.376991</td>\n",
" <td>0.010177</td>\n",
" <td>0.540293</td>\n",
" <td>0.458313</td>\n",
" <td>0.384451</td>\n",
" <td>0.575734</td>\n",
" <td>0.784190</td>\n",
" <td>...</td>\n",
" <td>0.441665</td>\n",
" <td>0.035555</td>\n",
" <td>0.452744</td>\n",
" <td>0.877581</td>\n",
" <td>0.144822</td>\n",
" <td>0.309522</td>\n",
" <td>0.169773</td>\n",
" <td>0.497065</td>\n",
" <td>0.638984</td>\n",
" <td>0.885435</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.918454</td>\n",
" <td>0.059000</td>\n",
" <td>0.605986</td>\n",
" <td>0.972003</td>\n",
" <td>0.292010</td>\n",
" <td>0.190396</td>\n",
" <td>0.895254</td>\n",
" <td>0.258110</td>\n",
" <td>0.566559</td>\n",
" <td>0.784649</td>\n",
" <td>...</td>\n",
" <td>0.693407</td>\n",
" <td>0.926780</td>\n",
" <td>0.408043</td>\n",
" <td>0.574559</td>\n",
" <td>0.442395</td>\n",
" <td>0.239077</td>\n",
" <td>0.830473</td>\n",
" <td>0.452400</td>\n",
" <td>0.816933</td>\n",
" <td>0.836611</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.646999</td>\n",
" <td>0.850362</td>\n",
" <td>0.256273</td>\n",
" <td>0.126977</td>\n",
" <td>0.856782</td>\n",
" <td>0.565387</td>\n",
" <td>0.603838</td>\n",
" <td>0.387603</td>\n",
" <td>0.993695</td>\n",
" <td>0.246242</td>\n",
" <td>...</td>\n",
" <td>0.946644</td>\n",
" <td>0.231782</td>\n",
" <td>0.627512</td>\n",
" <td>0.638591</td>\n",
" <td>0.160939</td>\n",
" <td>0.455423</td>\n",
" <td>0.981441</td>\n",
" <td>0.892524</td>\n",
" <td>0.845324</td>\n",
" <td>0.607496</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.921668</td>\n",
" <td>0.824411</td>\n",
" <td>0.914533</td>\n",
" <td>0.012674</td>\n",
" <td>0.247323</td>\n",
" <td>0.167073</td>\n",
" <td>0.380060</td>\n",
" <td>0.490108</td>\n",
" <td>0.775930</td>\n",
" <td>0.746118</td>\n",
" <td>...</td>\n",
" <td>0.665203</td>\n",
" <td>0.061236</td>\n",
" <td>0.358625</td>\n",
" <td>0.827488</td>\n",
" <td>0.094361</td>\n",
" <td>0.173015</td>\n",
" <td>0.683129</td>\n",
" <td>0.024877</td>\n",
" <td>0.287377</td>\n",
" <td>0.019582</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.422308</td>\n",
" <td>0.156419</td>\n",
" <td>0.854188</td>\n",
" <td>0.839412</td>\n",
" <td>0.749366</td>\n",
" <td>0.133369</td>\n",
" <td>0.453759</td>\n",
" <td>0.529574</td>\n",
" <td>0.495453</td>\n",
" <td>0.257734</td>\n",
" <td>...</td>\n",
" <td>0.001932</td>\n",
" <td>0.101420</td>\n",
" <td>0.983574</td>\n",
" <td>0.331180</td>\n",
" <td>0.105113</td>\n",
" <td>0.915211</td>\n",
" <td>0.887249</td>\n",
" <td>0.678250</td>\n",
" <td>0.912520</td>\n",
" <td>0.026752</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.506288</td>\n",
" <td>0.154418</td>\n",
" <td>0.164661</td>\n",
" <td>0.280107</td>\n",
" <td>0.967261</td>\n",
" <td>0.817820</td>\n",
" <td>0.967077</td>\n",
" <td>0.611525</td>\n",
" <td>0.584056</td>\n",
" <td>0.224635</td>\n",
" <td>...</td>\n",
" <td>0.749615</td>\n",
" <td>0.928690</td>\n",
" <td>0.101283</td>\n",
" <td>0.481720</td>\n",
" <td>0.955114</td>\n",
" <td>0.998217</td>\n",
" <td>0.017245</td>\n",
" <td>0.322375</td>\n",
" <td>0.962149</td>\n",
" <td>0.754960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.454029</td>\n",
" <td>0.927767</td>\n",
" <td>0.274443</td>\n",
" <td>0.916431</td>\n",
" <td>0.934167</td>\n",
" <td>0.552276</td>\n",
" <td>0.457321</td>\n",
" <td>0.656414</td>\n",
" <td>0.774967</td>\n",
" <td>0.436111</td>\n",
" <td>...</td>\n",
" <td>0.642147</td>\n",
" <td>0.856291</td>\n",
" <td>0.341387</td>\n",
" <td>0.883914</td>\n",
" <td>0.359118</td>\n",
" <td>0.209868</td>\n",
" <td>0.152013</td>\n",
" <td>0.668206</td>\n",
" <td>0.410387</td>\n",
" <td>0.463557</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.345856</td>\n",
" <td>0.366117</td>\n",
" <td>0.160156</td>\n",
" <td>0.517050</td>\n",
" <td>0.073225</td>\n",
" <td>0.425393</td>\n",
" <td>0.305986</td>\n",
" <td>0.518961</td>\n",
" <td>0.343922</td>\n",
" <td>0.480079</td>\n",
" <td>...</td>\n",
" <td>0.457486</td>\n",
" <td>0.518361</td>\n",
" <td>0.486320</td>\n",
" <td>0.843686</td>\n",
" <td>0.318164</td>\n",
" <td>0.685640</td>\n",
" <td>0.279326</td>\n",
" <td>0.120067</td>\n",
" <td>0.450151</td>\n",
" <td>0.062217</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.315673</td>\n",
" <td>0.318444</td>\n",
" <td>0.851824</td>\n",
" <td>0.988705</td>\n",
" <td>0.981797</td>\n",
" <td>0.881747</td>\n",
" <td>0.364842</td>\n",
" <td>0.673027</td>\n",
" <td>0.042230</td>\n",
" <td>0.362049</td>\n",
" <td>...</td>\n",
" <td>0.989255</td>\n",
" <td>0.581905</td>\n",
" <td>0.774169</td>\n",
" <td>0.402561</td>\n",
" <td>0.167714</td>\n",
" <td>0.431203</td>\n",
" <td>0.909684</td>\n",
" <td>0.481018</td>\n",
" <td>0.180855</td>\n",
" <td>0.448191</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.205549</td>\n",
" <td>0.716456</td>\n",
" <td>0.659788</td>\n",
" <td>0.837817</td>\n",
" <td>0.927905</td>\n",
" <td>0.718959</td>\n",
" <td>0.599981</td>\n",
" <td>0.842613</td>\n",
" <td>0.824175</td>\n",
" <td>0.566705</td>\n",
" <td>...</td>\n",
" <td>0.991036</td>\n",
" <td>0.713567</td>\n",
" <td>0.180917</td>\n",
" <td>0.179326</td>\n",
" <td>0.254780</td>\n",
" <td>0.792693</td>\n",
" <td>0.180319</td>\n",
" <td>0.289245</td>\n",
" <td>0.807706</td>\n",
" <td>0.612095</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.420512</td>\n",
" <td>0.123527</td>\n",
" <td>0.335126</td>\n",
" <td>0.849934</td>\n",
" <td>0.482399</td>\n",
" <td>0.797059</td>\n",
" <td>0.244173</td>\n",
" <td>0.699172</td>\n",
" <td>0.926249</td>\n",
" <td>0.743934</td>\n",
" <td>...</td>\n",
" <td>0.879341</td>\n",
" <td>0.622878</td>\n",
" <td>0.852618</td>\n",
" <td>0.410043</td>\n",
" <td>0.018327</td>\n",
" <td>0.324813</td>\n",
" <td>0.179031</td>\n",
" <td>0.610074</td>\n",
" <td>0.113747</td>\n",
" <td>0.782857</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.025992</td>\n",
" <td>0.861455</td>\n",
" <td>0.691324</td>\n",
" <td>0.733395</td>\n",
" <td>0.735729</td>\n",
" <td>0.483047</td>\n",
" <td>0.598218</td>\n",
" <td>0.065668</td>\n",
" <td>0.094811</td>\n",
" <td>0.951067</td>\n",
" <td>...</td>\n",
" <td>0.836231</td>\n",
" <td>0.361918</td>\n",
" <td>0.953956</td>\n",
" <td>0.077283</td>\n",
" <td>0.054073</td>\n",
" <td>0.413788</td>\n",
" <td>0.883891</td>\n",
" <td>0.119703</td>\n",
" <td>0.567108</td>\n",
" <td>0.493008</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.810469</td>\n",
" <td>0.843145</td>\n",
" <td>0.906850</td>\n",
" <td>0.163949</td>\n",
" <td>0.081459</td>\n",
" <td>0.420135</td>\n",
" <td>0.055895</td>\n",
" <td>0.593444</td>\n",
" <td>0.923923</td>\n",
" <td>0.607202</td>\n",
" <td>...</td>\n",
" <td>0.009763</td>\n",
" <td>0.411909</td>\n",
" <td>0.381087</td>\n",
" <td>0.487510</td>\n",
" <td>0.881673</td>\n",
" <td>0.984235</td>\n",
" <td>0.023525</td>\n",
" <td>0.831200</td>\n",
" <td>0.194701</td>\n",
" <td>0.809376</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.726072</td>\n",
" <td>0.703061</td>\n",
" <td>0.849821</td>\n",
" <td>0.427970</td>\n",
" <td>0.387792</td>\n",
" <td>0.589393</td>\n",
" <td>0.518346</td>\n",
" <td>0.869612</td>\n",
" <td>0.203194</td>\n",
" <td>0.169342</td>\n",
" <td>...</td>\n",
" <td>0.232699</td>\n",
" <td>0.251785</td>\n",
" <td>0.674025</td>\n",
" <td>0.583732</td>\n",
" <td>0.556011</td>\n",
" <td>0.502748</td>\n",
" <td>0.480303</td>\n",
" <td>0.424225</td>\n",
" <td>0.323173</td>\n",
" <td>0.376954</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.647026</td>\n",
" <td>0.755813</td>\n",
" <td>0.421604</td>\n",
" <td>0.004849</td>\n",
" <td>0.420820</td>\n",
" <td>0.583218</td>\n",
" <td>0.709922</td>\n",
" <td>0.856784</td>\n",
" <td>0.169797</td>\n",
" <td>0.859860</td>\n",
" <td>...</td>\n",
" <td>0.401008</td>\n",
" <td>0.049301</td>\n",
" <td>0.566911</td>\n",
" <td>0.673314</td>\n",
" <td>0.616076</td>\n",
" <td>0.529248</td>\n",
" <td>0.619883</td>\n",
" <td>0.807968</td>\n",
" <td>0.333503</td>\n",
" <td>0.377679</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.623084</td>\n",
" <td>0.213260</td>\n",
" <td>0.795861</td>\n",
" <td>0.012738</td>\n",
" <td>0.992152</td>\n",
" <td>0.956483</td>\n",
" <td>0.751896</td>\n",
" <td>0.087176</td>\n",
" <td>0.387802</td>\n",
" <td>0.758393</td>\n",
" <td>...</td>\n",
" <td>0.430937</td>\n",
" <td>0.179346</td>\n",
" <td>0.189633</td>\n",
" <td>0.600484</td>\n",
" <td>0.886043</td>\n",
" <td>0.233101</td>\n",
" <td>0.435130</td>\n",
" <td>0.776900</td>\n",
" <td>0.474036</td>\n",
" <td>0.882069</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.551459</td>\n",
" <td>0.105585</td>\n",
" <td>0.002546</td>\n",
" <td>0.806782</td>\n",
" <td>0.922819</td>\n",
" <td>0.963950</td>\n",
" <td>0.006080</td>\n",
" <td>0.888455</td>\n",
" <td>0.923707</td>\n",
" <td>0.337835</td>\n",
" <td>...</td>\n",
" <td>0.886903</td>\n",
" <td>0.013229</td>\n",
" <td>0.332263</td>\n",
" <td>0.309682</td>\n",
" <td>0.939969</td>\n",
" <td>0.283467</td>\n",
" <td>0.340298</td>\n",
" <td>0.020549</td>\n",
" <td>0.905591</td>\n",
" <td>0.731557</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.002006</td>\n",
" <td>0.380132</td>\n",
" <td>0.392241</td>\n",
" <td>0.400662</td>\n",
" <td>0.302322</td>\n",
" <td>0.234237</td>\n",
" <td>0.911726</td>\n",
" <td>0.319682</td>\n",
" <td>0.066255</td>\n",
" <td>0.093499</td>\n",
" <td>...</td>\n",
" <td>0.488052</td>\n",
" <td>0.108593</td>\n",
" <td>0.426679</td>\n",
" <td>0.797270</td>\n",
" <td>0.057724</td>\n",
" <td>0.505999</td>\n",
" <td>0.361333</td>\n",
" <td>0.743223</td>\n",
" <td>0.214302</td>\n",
" <td>0.770101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.373025</td>\n",
" <td>0.270152</td>\n",
" <td>0.308571</td>\n",
" <td>0.677322</td>\n",
" <td>0.392322</td>\n",
" <td>0.854026</td>\n",
" <td>0.821489</td>\n",
" <td>0.344183</td>\n",
" <td>0.921339</td>\n",
" <td>0.680502</td>\n",
" <td>...</td>\n",
" <td>0.008726</td>\n",
" <td>0.984410</td>\n",
" <td>0.614340</td>\n",
" <td>0.281166</td>\n",
" <td>0.455908</td>\n",
" <td>0.332989</td>\n",
" <td>0.290663</td>\n",
" <td>0.591699</td>\n",
" <td>0.433521</td>\n",
" <td>0.443143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.649250</td>\n",
" <td>0.606102</td>\n",
" <td>0.624267</td>\n",
" <td>0.196862</td>\n",
" <td>0.621665</td>\n",
" <td>0.224008</td>\n",
" <td>0.038610</td>\n",
" <td>0.982751</td>\n",
" <td>0.156271</td>\n",
" <td>0.024786</td>\n",
" <td>...</td>\n",
" <td>0.435072</td>\n",
" <td>0.731842</td>\n",
" <td>0.063052</td>\n",
" <td>0.989807</td>\n",
" <td>0.513522</td>\n",
" <td>0.697618</td>\n",
" <td>0.051160</td>\n",
" <td>0.303732</td>\n",
" <td>0.119267</td>\n",
" <td>0.016446</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.895270</td>\n",
" <td>0.879014</td>\n",
" <td>0.240188</td>\n",
" <td>0.640268</td>\n",
" <td>0.223228</td>\n",
" <td>0.698074</td>\n",
" <td>0.691753</td>\n",
" <td>0.441558</td>\n",
" <td>0.973204</td>\n",
" <td>0.547581</td>\n",
" <td>...</td>\n",
" <td>0.896104</td>\n",
" <td>0.510422</td>\n",
" <td>0.653590</td>\n",
" <td>0.076171</td>\n",
" <td>0.058290</td>\n",
" <td>0.929248</td>\n",
" <td>0.985343</td>\n",
" <td>0.442535</td>\n",
" <td>0.096128</td>\n",
" <td>0.417527</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.439844</td>\n",
" <td>0.949377</td>\n",
" <td>0.696315</td>\n",
" <td>0.745939</td>\n",
" <td>0.661174</td>\n",
" <td>0.880395</td>\n",
" <td>0.511074</td>\n",
" <td>0.066138</td>\n",
" <td>0.330999</td>\n",
" <td>0.341218</td>\n",
" <td>...</td>\n",
" <td>0.495380</td>\n",
" <td>0.752190</td>\n",
" <td>0.911377</td>\n",
" <td>0.006507</td>\n",
" <td>0.247934</td>\n",
" <td>0.810197</td>\n",
" <td>0.174798</td>\n",
" <td>0.908177</td>\n",
" <td>0.179074</td>\n",
" <td>0.523347</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.707694</td>\n",
" <td>0.993503</td>\n",
" <td>0.855651</td>\n",
" <td>0.310378</td>\n",
" <td>0.621948</td>\n",
" <td>0.727407</td>\n",
" <td>0.034146</td>\n",
" <td>0.044066</td>\n",
" <td>0.087739</td>\n",
" <td>0.414957</td>\n",
" <td>...</td>\n",
" <td>0.549484</td>\n",
" <td>0.307840</td>\n",
" <td>0.429065</td>\n",
" <td>0.220030</td>\n",
" <td>0.967252</td>\n",
" <td>0.049362</td>\n",
" <td>0.008632</td>\n",
" <td>0.403881</td>\n",
" <td>0.648648</td>\n",
" <td>0.158389</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.739626</td>\n",
" <td>0.850896</td>\n",
" <td>0.155743</td>\n",
" <td>0.566634</td>\n",
" <td>0.984482</td>\n",
" <td>0.013472</td>\n",
" <td>0.461241</td>\n",
" <td>0.978250</td>\n",
" <td>0.396552</td>\n",
" <td>0.178603</td>\n",
" <td>...</td>\n",
" <td>0.347147</td>\n",
" <td>0.567475</td>\n",
" <td>0.795042</td>\n",
" <td>0.132988</td>\n",
" <td>0.102712</td>\n",
" <td>0.194496</td>\n",
" <td>0.197294</td>\n",
" <td>0.346888</td>\n",
" <td>0.721723</td>\n",
" <td>0.361676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.683164</td>\n",
" <td>0.089239</td>\n",
" <td>0.397910</td>\n",
" <td>0.291343</td>\n",
" <td>0.183786</td>\n",
" <td>0.497714</td>\n",
" <td>0.940537</td>\n",
" <td>0.401531</td>\n",
" <td>0.665639</td>\n",
" <td>0.550707</td>\n",
" <td>...</td>\n",
" <td>0.922921</td>\n",
" <td>0.376971</td>\n",
" <td>0.972600</td>\n",
" <td>0.833217</td>\n",
" <td>0.719600</td>\n",
" <td>0.963076</td>\n",
" <td>0.867103</td>\n",
" <td>0.713219</td>\n",
" <td>0.968959</td>\n",
" <td>0.894023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.913869</td>\n",
" <td>0.281867</td>\n",
" <td>0.470034</td>\n",
" <td>0.876400</td>\n",
" <td>0.814419</td>\n",
" <td>0.318055</td>\n",
" <td>0.923746</td>\n",
" <td>0.820085</td>\n",
" <td>0.468000</td>\n",
" <td>0.592534</td>\n",
" <td>...</td>\n",
" <td>0.571624</td>\n",
" <td>0.518391</td>\n",
" <td>0.671495</td>\n",
" <td>0.912193</td>\n",
" <td>0.124609</td>\n",
" <td>0.581010</td>\n",
" <td>0.403539</td>\n",
" <td>0.882225</td>\n",
" <td>0.307709</td>\n",
" <td>0.992697</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.706034</td>\n",
" <td>0.263695</td>\n",
" <td>0.477889</td>\n",
" <td>0.142627</td>\n",
" <td>0.366462</td>\n",
" <td>0.038948</td>\n",
" <td>0.592196</td>\n",
" <td>0.854459</td>\n",
" <td>0.139325</td>\n",
" <td>0.766485</td>\n",
" <td>...</td>\n",
" <td>0.944993</td>\n",
" <td>0.171959</td>\n",
" <td>0.184221</td>\n",
" <td>0.388392</td>\n",
" <td>0.806966</td>\n",
" <td>0.931385</td>\n",
" <td>0.993568</td>\n",
" <td>0.634777</td>\n",
" <td>0.608329</td>\n",
" <td>0.091003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9970</th>\n",
" <td>0.053879</td>\n",
" <td>0.720957</td>\n",
" <td>0.942414</td>\n",
" <td>0.982839</td>\n",
" <td>0.218266</td>\n",
" <td>0.107483</td>\n",
" <td>0.019249</td>\n",
" <td>0.369563</td>\n",
" <td>0.545052</td>\n",
" <td>0.973266</td>\n",
" <td>...</td>\n",
" <td>0.682402</td>\n",
" <td>0.664746</td>\n",
" <td>0.349658</td>\n",
" <td>0.318262</td>\n",
" <td>0.490528</td>\n",
" <td>0.580008</td>\n",
" <td>0.306727</td>\n",
" <td>0.284050</td>\n",
" <td>0.453405</td>\n",
" <td>0.509526</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9971</th>\n",
" <td>0.108207</td>\n",
" <td>0.279627</td>\n",
" <td>0.239265</td>\n",
" <td>0.539150</td>\n",
" <td>0.494122</td>\n",
" <td>0.903630</td>\n",
" <td>0.388003</td>\n",
" <td>0.111589</td>\n",
" <td>0.523767</td>\n",
" <td>0.752033</td>\n",
" <td>...</td>\n",
" <td>0.786303</td>\n",
" <td>0.019084</td>\n",
" <td>0.646271</td>\n",
" <td>0.224447</td>\n",
" <td>0.540510</td>\n",
" <td>0.677623</td>\n",
" <td>0.560761</td>\n",
" <td>0.053813</td>\n",
" <td>0.020443</td>\n",
" <td>0.844299</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9972</th>\n",
" <td>0.707989</td>\n",
" <td>0.082754</td>\n",
" <td>0.524693</td>\n",
" <td>0.837180</td>\n",
" <td>0.740764</td>\n",
" <td>0.981648</td>\n",
" <td>0.884630</td>\n",
" <td>0.807224</td>\n",
" <td>0.667111</td>\n",
" <td>0.890415</td>\n",
" <td>...</td>\n",
" <td>0.358431</td>\n",
" <td>0.580032</td>\n",
" <td>0.056064</td>\n",
" <td>0.226071</td>\n",
" <td>0.739247</td>\n",
" <td>0.301603</td>\n",
" <td>0.528886</td>\n",
" <td>0.504747</td>\n",
" <td>0.259486</td>\n",
" <td>0.944662</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9973</th>\n",
" <td>0.385830</td>\n",
" <td>0.910986</td>\n",
" <td>0.831461</td>\n",
" <td>0.411921</td>\n",
" <td>0.454409</td>\n",
" <td>0.694829</td>\n",
" <td>0.344580</td>\n",
" <td>0.626709</td>\n",
" <td>0.414129</td>\n",
" <td>0.236408</td>\n",
" <td>...</td>\n",
" <td>0.014692</td>\n",
" <td>0.615125</td>\n",
" <td>0.276768</td>\n",
" <td>0.549361</td>\n",
" <td>0.713613</td>\n",
" <td>0.410058</td>\n",
" <td>0.259048</td>\n",
" <td>0.092261</td>\n",
" <td>0.925426</td>\n",
" <td>0.900636</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9974</th>\n",
" <td>0.488955</td>\n",
" <td>0.438826</td>\n",
" <td>0.120740</td>\n",
" <td>0.549207</td>\n",
" <td>0.062427</td>\n",
" <td>0.979188</td>\n",
" <td>0.525497</td>\n",
" <td>0.559707</td>\n",
" <td>0.434915</td>\n",
" <td>0.656175</td>\n",
" <td>...</td>\n",
" <td>0.502542</td>\n",
" <td>0.094876</td>\n",
" <td>0.956319</td>\n",
" <td>0.156523</td>\n",
" <td>0.265497</td>\n",
" <td>0.398759</td>\n",
" <td>0.857795</td>\n",
" <td>0.569329</td>\n",
" <td>0.677445</td>\n",
" <td>0.470522</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9975</th>\n",
" <td>0.020672</td>\n",
" <td>0.343487</td>\n",
" <td>0.874670</td>\n",
" <td>0.881131</td>\n",
" <td>0.573221</td>\n",
" <td>0.579934</td>\n",
" <td>0.174356</td>\n",
" <td>0.973644</td>\n",
" <td>0.257897</td>\n",
" <td>0.570842</td>\n",
" <td>...</td>\n",
" <td>0.679307</td>\n",
" <td>0.129266</td>\n",
" <td>0.244572</td>\n",
" <td>0.674007</td>\n",
" <td>0.196686</td>\n",
" <td>0.703443</td>\n",
" <td>0.313545</td>\n",
" <td>0.562344</td>\n",
" <td>0.674212</td>\n",
" <td>0.470903</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9976</th>\n",
" <td>0.714690</td>\n",
" <td>0.836503</td>\n",
" <td>0.853120</td>\n",
" <td>0.997148</td>\n",
" <td>0.783732</td>\n",
" <td>0.322481</td>\n",
" <td>0.010210</td>\n",
" <td>0.357929</td>\n",
" <td>0.880924</td>\n",
" <td>0.290520</td>\n",
" <td>...</td>\n",
" <td>0.148349</td>\n",
" <td>0.679802</td>\n",
" <td>0.727430</td>\n",
" <td>0.508699</td>\n",
" <td>0.159265</td>\n",
" <td>0.282503</td>\n",
" <td>0.477486</td>\n",
" <td>0.879373</td>\n",
" <td>0.763075</td>\n",
" <td>0.177490</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9977</th>\n",
" <td>0.281981</td>\n",
" <td>0.869896</td>\n",
" <td>0.308331</td>\n",
" <td>0.159180</td>\n",
" <td>0.781117</td>\n",
" <td>0.591871</td>\n",
" <td>0.076224</td>\n",
" <td>0.883353</td>\n",
" <td>0.130649</td>\n",
" <td>0.061272</td>\n",
" <td>...</td>\n",
" <td>0.688909</td>\n",
" <td>0.714336</td>\n",
" <td>0.952581</td>\n",
" <td>0.148527</td>\n",
" <td>0.987284</td>\n",
" <td>0.694668</td>\n",
" <td>0.299375</td>\n",
" <td>0.662287</td>\n",
" <td>0.481888</td>\n",
" <td>0.240032</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9978</th>\n",
" <td>0.077189</td>\n",
" <td>0.341534</td>\n",
" <td>0.336389</td>\n",
" <td>0.319619</td>\n",
" <td>0.934500</td>\n",
" <td>0.294920</td>\n",
" <td>0.178583</td>\n",
" <td>0.280634</td>\n",
" <td>0.325208</td>\n",
" <td>0.021494</td>\n",
" <td>...</td>\n",
" <td>0.486465</td>\n",
" <td>0.579847</td>\n",
" <td>0.641991</td>\n",
" <td>0.036583</td>\n",
" <td>0.667314</td>\n",
" <td>0.982583</td>\n",
" <td>0.985314</td>\n",
" <td>0.377249</td>\n",
" <td>0.817899</td>\n",
" <td>0.188749</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9979</th>\n",
" <td>0.179495</td>\n",
" <td>0.199881</td>\n",
" <td>0.991576</td>\n",
" <td>0.335892</td>\n",
" <td>0.825847</td>\n",
" <td>0.371923</td>\n",
" <td>0.888969</td>\n",
" <td>0.708715</td>\n",
" <td>0.471277</td>\n",
" <td>0.877853</td>\n",
" <td>...</td>\n",
" <td>0.314410</td>\n",
" <td>0.376928</td>\n",
" <td>0.502672</td>\n",
" <td>0.367149</td>\n",
" <td>0.873666</td>\n",
" <td>0.620355</td>\n",
" <td>0.735473</td>\n",
" <td>0.913797</td>\n",
" <td>0.584401</td>\n",
" <td>0.603738</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9980</th>\n",
" <td>0.765571</td>\n",
" <td>0.453844</td>\n",
" <td>0.363386</td>\n",
" <td>0.599446</td>\n",
" <td>0.809339</td>\n",
" <td>0.478546</td>\n",
" <td>0.051575</td>\n",
" <td>0.698956</td>\n",
" <td>0.188126</td>\n",
" <td>0.612170</td>\n",
" <td>...</td>\n",
" <td>0.226597</td>\n",
" <td>0.443539</td>\n",
" <td>0.481554</td>\n",
" <td>0.679427</td>\n",
" <td>0.539417</td>\n",
" <td>0.945132</td>\n",
" <td>0.279108</td>\n",
" <td>0.790695</td>\n",
" <td>0.226565</td>\n",
" <td>0.060459</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9981</th>\n",
" <td>0.708638</td>\n",
" <td>0.207180</td>\n",
" <td>0.781131</td>\n",
" <td>0.659260</td>\n",
" <td>0.119885</td>\n",
" <td>0.085125</td>\n",
" <td>0.577561</td>\n",
" <td>0.074258</td>\n",
" <td>0.810852</td>\n",
" <td>0.944774</td>\n",
" <td>...</td>\n",
" <td>0.425174</td>\n",
" <td>0.989240</td>\n",
" <td>0.081280</td>\n",
" <td>0.775405</td>\n",
" <td>0.129282</td>\n",
" <td>0.426818</td>\n",
" <td>0.439394</td>\n",
" <td>0.365707</td>\n",
" <td>0.037829</td>\n",
" <td>0.525208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9982</th>\n",
" <td>0.489472</td>\n",
" <td>0.669904</td>\n",
" <td>0.235924</td>\n",
" <td>0.260620</td>\n",
" <td>0.169352</td>\n",
" <td>0.555146</td>\n",
" <td>0.627247</td>\n",
" <td>0.411751</td>\n",
" <td>0.686511</td>\n",
" <td>0.671151</td>\n",
" <td>...</td>\n",
" <td>0.900563</td>\n",
" <td>0.455730</td>\n",
" <td>0.751474</td>\n",
" <td>0.931659</td>\n",
" <td>0.217235</td>\n",
" <td>0.932909</td>\n",
" <td>0.426066</td>\n",
" <td>0.289857</td>\n",
" <td>0.612639</td>\n",
" <td>0.317825</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9983</th>\n",
" <td>0.987114</td>\n",
" <td>0.255115</td>\n",
" <td>0.586185</td>\n",
" <td>0.716552</td>\n",
" <td>0.433907</td>\n",
" <td>0.038519</td>\n",
" <td>0.101072</td>\n",
" <td>0.751373</td>\n",
" <td>0.516104</td>\n",
" <td>0.119198</td>\n",
" <td>...</td>\n",
" <td>0.628871</td>\n",
" <td>0.039658</td>\n",
" <td>0.424998</td>\n",
" <td>0.625921</td>\n",
" <td>0.681629</td>\n",
" <td>0.532062</td>\n",
" <td>0.503189</td>\n",
" <td>0.357148</td>\n",
" <td>0.851982</td>\n",
" <td>0.264797</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9984</th>\n",
" <td>0.758098</td>\n",
" <td>0.359635</td>\n",
" <td>0.638150</td>\n",
" <td>0.952099</td>\n",
" <td>0.258070</td>\n",
" <td>0.118177</td>\n",
" <td>0.409192</td>\n",
" <td>0.144733</td>\n",
" <td>0.556892</td>\n",
" <td>0.142631</td>\n",
" <td>...</td>\n",
" <td>0.888529</td>\n",
" <td>0.967846</td>\n",
" <td>0.638526</td>\n",
" <td>0.821088</td>\n",
" <td>0.052063</td>\n",
" <td>0.706853</td>\n",
" <td>0.901010</td>\n",
" <td>0.940888</td>\n",
" <td>0.372582</td>\n",
" <td>0.064695</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9985</th>\n",
" <td>0.164069</td>\n",
" <td>0.147561</td>\n",
" <td>0.984724</td>\n",
" <td>0.707562</td>\n",
" <td>0.841055</td>\n",
" <td>0.688845</td>\n",
" <td>0.676486</td>\n",
" <td>0.885271</td>\n",
" <td>0.410859</td>\n",
" <td>0.233367</td>\n",
" <td>...</td>\n",
" <td>0.441395</td>\n",
" <td>0.895814</td>\n",
" <td>0.657609</td>\n",
" <td>0.320441</td>\n",
" <td>0.436304</td>\n",
" <td>0.741178</td>\n",
" <td>0.906136</td>\n",
" <td>0.061229</td>\n",
" <td>0.412660</td>\n",
" <td>0.811483</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9986</th>\n",
" <td>0.524750</td>\n",
" <td>0.496663</td>\n",
" <td>0.965370</td>\n",
" <td>0.716329</td>\n",
" <td>0.472266</td>\n",
" <td>0.956530</td>\n",
" <td>0.236317</td>\n",
" <td>0.611203</td>\n",
" <td>0.845229</td>\n",
" <td>0.141502</td>\n",
" <td>...</td>\n",
" <td>0.278968</td>\n",
" <td>0.886205</td>\n",
" <td>0.001281</td>\n",
" <td>0.513632</td>\n",
" <td>0.447760</td>\n",
" <td>0.110487</td>\n",
" <td>0.215771</td>\n",
" <td>0.488483</td>\n",
" <td>0.456687</td>\n",
" <td>0.804579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9987</th>\n",
" <td>0.948353</td>\n",
" <td>0.406131</td>\n",
" <td>0.295387</td>\n",
" <td>0.254283</td>\n",
" <td>0.950651</td>\n",
" <td>0.722030</td>\n",
" <td>0.808842</td>\n",
" <td>0.291347</td>\n",
" <td>0.193768</td>\n",
" <td>0.435891</td>\n",
" <td>...</td>\n",
" <td>0.840332</td>\n",
" <td>0.048047</td>\n",
" <td>0.786276</td>\n",
" <td>0.077125</td>\n",
" <td>0.820564</td>\n",
" <td>0.492386</td>\n",
" <td>0.652509</td>\n",
" <td>0.435928</td>\n",
" <td>0.686591</td>\n",
" <td>0.204746</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9988</th>\n",
" <td>0.849049</td>\n",
" <td>0.979029</td>\n",
" <td>0.352750</td>\n",
" <td>0.188758</td>\n",
" <td>0.788545</td>\n",
" <td>0.655921</td>\n",
" <td>0.602000</td>\n",
" <td>0.944753</td>\n",
" <td>0.829497</td>\n",
" <td>0.557112</td>\n",
" <td>...</td>\n",
" <td>0.003764</td>\n",
" <td>0.031592</td>\n",
" <td>0.014387</td>\n",
" <td>0.279091</td>\n",
" <td>0.432025</td>\n",
" <td>0.466432</td>\n",
" <td>0.316668</td>\n",
" <td>0.541347</td>\n",
" <td>0.848080</td>\n",
" <td>0.075929</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9989</th>\n",
" <td>0.155576</td>\n",
" <td>0.606942</td>\n",
" <td>0.595645</td>\n",
" <td>0.868882</td>\n",
" <td>0.389730</td>\n",
" <td>0.980125</td>\n",
" <td>0.078944</td>\n",
" <td>0.561450</td>\n",
" <td>0.605136</td>\n",
" <td>0.406719</td>\n",
" <td>...</td>\n",
" <td>0.866193</td>\n",
" <td>0.597416</td>\n",
" <td>0.895885</td>\n",
" <td>0.590639</td>\n",
" <td>0.525026</td>\n",
" <td>0.691657</td>\n",
" <td>0.236298</td>\n",
" <td>0.759277</td>\n",
" <td>0.825491</td>\n",
" <td>0.465912</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9990</th>\n",
" <td>0.157244</td>\n",
" <td>0.621952</td>\n",
" <td>0.165134</td>\n",
" <td>0.693276</td>\n",
" <td>0.849160</td>\n",
" <td>0.522744</td>\n",
" <td>0.325903</td>\n",
" <td>0.540264</td>\n",
" <td>0.634092</td>\n",
" <td>0.948824</td>\n",
" <td>...</td>\n",
" <td>0.453476</td>\n",
" <td>0.204638</td>\n",
" <td>0.352621</td>\n",
" <td>0.003852</td>\n",
" <td>0.152794</td>\n",
" <td>0.280258</td>\n",
" <td>0.648638</td>\n",
" <td>0.177251</td>\n",
" <td>0.051770</td>\n",
" <td>0.159315</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9991</th>\n",
" <td>0.118082</td>\n",
" <td>0.828796</td>\n",
" <td>0.625424</td>\n",
" <td>0.329086</td>\n",
" <td>0.388995</td>\n",
" <td>0.278430</td>\n",
" <td>0.226443</td>\n",
" <td>0.344813</td>\n",
" <td>0.682487</td>\n",
" <td>0.870397</td>\n",
" <td>...</td>\n",
" <td>0.501749</td>\n",
" <td>0.349545</td>\n",
" <td>0.126572</td>\n",
" <td>0.813689</td>\n",
" <td>0.515471</td>\n",
" <td>0.305692</td>\n",
" <td>0.715525</td>\n",
" <td>0.006987</td>\n",
" <td>0.711559</td>\n",
" <td>0.830609</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9992</th>\n",
" <td>0.667713</td>\n",
" <td>0.993555</td>\n",
" <td>0.137454</td>\n",
" <td>0.187984</td>\n",
" <td>0.586632</td>\n",
" <td>0.329277</td>\n",
" <td>0.536839</td>\n",
" <td>0.159802</td>\n",
" <td>0.827390</td>\n",
" <td>0.519971</td>\n",
" <td>...</td>\n",
" <td>0.377877</td>\n",
" <td>0.624206</td>\n",
" <td>0.265249</td>\n",
" <td>0.604796</td>\n",
" <td>0.949387</td>\n",
" <td>0.998148</td>\n",
" <td>0.411342</td>\n",
" <td>0.723347</td>\n",
" <td>0.571842</td>\n",
" <td>0.281479</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9993</th>\n",
" <td>0.021782</td>\n",
" <td>0.697713</td>\n",
" <td>0.644858</td>\n",
" <td>0.239174</td>\n",
" <td>0.166634</td>\n",
" <td>0.214911</td>\n",
" <td>0.121078</td>\n",
" <td>0.456610</td>\n",
" <td>0.190433</td>\n",
" <td>0.228984</td>\n",
" <td>...</td>\n",
" <td>0.957231</td>\n",
" <td>0.267369</td>\n",
" <td>0.763429</td>\n",
" <td>0.326853</td>\n",
" <td>0.583882</td>\n",
" <td>0.662962</td>\n",
" <td>0.274828</td>\n",
" <td>0.641714</td>\n",
" <td>0.226834</td>\n",
" <td>0.116271</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9994</th>\n",
" <td>0.475834</td>\n",
" <td>0.181133</td>\n",
" <td>0.817184</td>\n",
" <td>0.769015</td>\n",
" <td>0.741251</td>\n",
" <td>0.980718</td>\n",
" <td>0.724758</td>\n",
" <td>0.310116</td>\n",
" <td>0.764663</td>\n",
" <td>0.507972</td>\n",
" <td>...</td>\n",
" <td>0.433727</td>\n",
" <td>0.337628</td>\n",
" <td>0.888571</td>\n",
" <td>0.761365</td>\n",
" <td>0.870598</td>\n",
" <td>0.165884</td>\n",
" <td>0.046260</td>\n",
" <td>0.261919</td>\n",
" <td>0.782814</td>\n",
" <td>0.422424</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9995</th>\n",
" <td>0.856332</td>\n",
" <td>0.450214</td>\n",
" <td>0.179625</td>\n",
" <td>0.725598</td>\n",
" <td>0.218492</td>\n",
" <td>0.890067</td>\n",
" <td>0.258866</td>\n",
" <td>0.026179</td>\n",
" <td>0.784143</td>\n",
" <td>0.305558</td>\n",
" <td>...</td>\n",
" <td>0.492059</td>\n",
" <td>0.637084</td>\n",
" <td>0.303195</td>\n",
" <td>0.062421</td>\n",
" <td>0.929250</td>\n",
" <td>0.895157</td>\n",
" <td>0.885396</td>\n",
" <td>0.367180</td>\n",
" <td>0.183393</td>\n",
" <td>0.561693</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9996</th>\n",
" <td>0.440081</td>\n",
" <td>0.524915</td>\n",
" <td>0.550379</td>\n",
" <td>0.473681</td>\n",
" <td>0.120976</td>\n",
" <td>0.931918</td>\n",
" <td>0.492997</td>\n",
" <td>0.235697</td>\n",
" <td>0.892777</td>\n",
" <td>0.616187</td>\n",
" <td>...</td>\n",
" <td>0.703626</td>\n",
" <td>0.015397</td>\n",
" <td>0.773017</td>\n",
" <td>0.934825</td>\n",
" <td>0.098815</td>\n",
" <td>0.721886</td>\n",
" <td>0.524932</td>\n",
" <td>0.829147</td>\n",
" <td>0.929684</td>\n",
" <td>0.533885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9997</th>\n",
" <td>0.234355</td>\n",
" <td>0.770552</td>\n",
" <td>0.058181</td>\n",
" <td>0.911931</td>\n",
" <td>0.904756</td>\n",
" <td>0.511749</td>\n",
" <td>0.996812</td>\n",
" <td>0.654947</td>\n",
" <td>0.128181</td>\n",
" <td>0.025823</td>\n",
" <td>...</td>\n",
" <td>0.689640</td>\n",
" <td>0.307819</td>\n",
" <td>0.826728</td>\n",
" <td>0.426333</td>\n",
" <td>0.623451</td>\n",
" <td>0.501839</td>\n",
" <td>0.939246</td>\n",
" <td>0.263234</td>\n",
" <td>0.519483</td>\n",
" <td>0.001875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9998</th>\n",
" <td>0.909177</td>\n",
" <td>0.575035</td>\n",
" <td>0.281474</td>\n",
" <td>0.496997</td>\n",
" <td>0.429291</td>\n",
" <td>0.332669</td>\n",
" <td>0.718993</td>\n",
" <td>0.682411</td>\n",
" <td>0.338059</td>\n",
" <td>0.209986</td>\n",
" <td>...</td>\n",
" <td>0.834548</td>\n",
" <td>0.710307</td>\n",
" <td>0.339326</td>\n",
" <td>0.771934</td>\n",
" <td>0.633576</td>\n",
" <td>0.959917</td>\n",
" <td>0.178403</td>\n",
" <td>0.652986</td>\n",
" <td>0.156733</td>\n",
" <td>0.367656</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9999</th>\n",
" <td>0.862351</td>\n",
" <td>0.882061</td>\n",
" <td>0.874147</td>\n",
" <td>0.441327</td>\n",
" <td>0.325327</td>\n",
" <td>0.294863</td>\n",
" <td>0.943655</td>\n",
" <td>0.781074</td>\n",
" <td>0.493973</td>\n",
" <td>0.999720</td>\n",
" <td>...</td>\n",
" <td>0.214056</td>\n",
" <td>0.394862</td>\n",
" <td>0.343139</td>\n",
" <td>0.736754</td>\n",
" <td>0.840996</td>\n",
" <td>0.696570</td>\n",
" <td>0.143770</td>\n",
" <td>0.343208</td>\n",
" <td>0.347218</td>\n",
" <td>0.202880</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>10000 rows × 10000 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 \\\n",
"0 0.172719 0.707440 0.564283 0.285004 0.469305 0.151295 0.426103 \n",
"1 0.887740 0.578609 0.187030 0.228984 0.129537 0.902626 0.640961 \n",
"2 0.178611 0.579793 0.423388 0.774751 0.698461 0.896830 0.096732 \n",
"3 0.892965 0.287410 0.094607 0.376991 0.010177 0.540293 0.458313 \n",
"4 0.918454 0.059000 0.605986 0.972003 0.292010 0.190396 0.895254 \n",
"5 0.646999 0.850362 0.256273 0.126977 0.856782 0.565387 0.603838 \n",
"6 0.921668 0.824411 0.914533 0.012674 0.247323 0.167073 0.380060 \n",
"7 0.422308 0.156419 0.854188 0.839412 0.749366 0.133369 0.453759 \n",
"8 0.506288 0.154418 0.164661 0.280107 0.967261 0.817820 0.967077 \n",
"9 0.454029 0.927767 0.274443 0.916431 0.934167 0.552276 0.457321 \n",
"10 0.345856 0.366117 0.160156 0.517050 0.073225 0.425393 0.305986 \n",
"11 0.315673 0.318444 0.851824 0.988705 0.981797 0.881747 0.364842 \n",
"12 0.205549 0.716456 0.659788 0.837817 0.927905 0.718959 0.599981 \n",
"13 0.420512 0.123527 0.335126 0.849934 0.482399 0.797059 0.244173 \n",
"14 0.025992 0.861455 0.691324 0.733395 0.735729 0.483047 0.598218 \n",
"15 0.810469 0.843145 0.906850 0.163949 0.081459 0.420135 0.055895 \n",
"16 0.726072 0.703061 0.849821 0.427970 0.387792 0.589393 0.518346 \n",
"17 0.647026 0.755813 0.421604 0.004849 0.420820 0.583218 0.709922 \n",
"18 0.623084 0.213260 0.795861 0.012738 0.992152 0.956483 0.751896 \n",
"19 0.551459 0.105585 0.002546 0.806782 0.922819 0.963950 0.006080 \n",
"20 0.002006 0.380132 0.392241 0.400662 0.302322 0.234237 0.911726 \n",
"21 0.373025 0.270152 0.308571 0.677322 0.392322 0.854026 0.821489 \n",
"22 0.649250 0.606102 0.624267 0.196862 0.621665 0.224008 0.038610 \n",
"23 0.895270 0.879014 0.240188 0.640268 0.223228 0.698074 0.691753 \n",
"24 0.439844 0.949377 0.696315 0.745939 0.661174 0.880395 0.511074 \n",
"25 0.707694 0.993503 0.855651 0.310378 0.621948 0.727407 0.034146 \n",
"26 0.739626 0.850896 0.155743 0.566634 0.984482 0.013472 0.461241 \n",
"27 0.683164 0.089239 0.397910 0.291343 0.183786 0.497714 0.940537 \n",
"28 0.913869 0.281867 0.470034 0.876400 0.814419 0.318055 0.923746 \n",
"29 0.706034 0.263695 0.477889 0.142627 0.366462 0.038948 0.592196 \n",
"... ... ... ... ... ... ... ... \n",
"9970 0.053879 0.720957 0.942414 0.982839 0.218266 0.107483 0.019249 \n",
"9971 0.108207 0.279627 0.239265 0.539150 0.494122 0.903630 0.388003 \n",
"9972 0.707989 0.082754 0.524693 0.837180 0.740764 0.981648 0.884630 \n",
"9973 0.385830 0.910986 0.831461 0.411921 0.454409 0.694829 0.344580 \n",
"9974 0.488955 0.438826 0.120740 0.549207 0.062427 0.979188 0.525497 \n",
"9975 0.020672 0.343487 0.874670 0.881131 0.573221 0.579934 0.174356 \n",
"9976 0.714690 0.836503 0.853120 0.997148 0.783732 0.322481 0.010210 \n",
"9977 0.281981 0.869896 0.308331 0.159180 0.781117 0.591871 0.076224 \n",
"9978 0.077189 0.341534 0.336389 0.319619 0.934500 0.294920 0.178583 \n",
"9979 0.179495 0.199881 0.991576 0.335892 0.825847 0.371923 0.888969 \n",
"9980 0.765571 0.453844 0.363386 0.599446 0.809339 0.478546 0.051575 \n",
"9981 0.708638 0.207180 0.781131 0.659260 0.119885 0.085125 0.577561 \n",
"9982 0.489472 0.669904 0.235924 0.260620 0.169352 0.555146 0.627247 \n",
"9983 0.987114 0.255115 0.586185 0.716552 0.433907 0.038519 0.101072 \n",
"9984 0.758098 0.359635 0.638150 0.952099 0.258070 0.118177 0.409192 \n",
"9985 0.164069 0.147561 0.984724 0.707562 0.841055 0.688845 0.676486 \n",
"9986 0.524750 0.496663 0.965370 0.716329 0.472266 0.956530 0.236317 \n",
"9987 0.948353 0.406131 0.295387 0.254283 0.950651 0.722030 0.808842 \n",
"9988 0.849049 0.979029 0.352750 0.188758 0.788545 0.655921 0.602000 \n",
"9989 0.155576 0.606942 0.595645 0.868882 0.389730 0.980125 0.078944 \n",
"9990 0.157244 0.621952 0.165134 0.693276 0.849160 0.522744 0.325903 \n",
"9991 0.118082 0.828796 0.625424 0.329086 0.388995 0.278430 0.226443 \n",
"9992 0.667713 0.993555 0.137454 0.187984 0.586632 0.329277 0.536839 \n",
"9993 0.021782 0.697713 0.644858 0.239174 0.166634 0.214911 0.121078 \n",
"9994 0.475834 0.181133 0.817184 0.769015 0.741251 0.980718 0.724758 \n",
"9995 0.856332 0.450214 0.179625 0.725598 0.218492 0.890067 0.258866 \n",
"9996 0.440081 0.524915 0.550379 0.473681 0.120976 0.931918 0.492997 \n",
"9997 0.234355 0.770552 0.058181 0.911931 0.904756 0.511749 0.996812 \n",
"9998 0.909177 0.575035 0.281474 0.496997 0.429291 0.332669 0.718993 \n",
"9999 0.862351 0.882061 0.874147 0.441327 0.325327 0.294863 0.943655 \n",
"\n",
" 7 8 9 ... 9990 9991 9992 \\\n",
"0 0.008062 0.864924 0.446003 ... 0.706989 0.888882 0.969575 \n",
"1 0.753340 0.043697 0.624264 ... 0.671271 0.784039 0.297014 \n",
"2 0.951842 0.681792 0.841288 ... 0.262204 0.882996 0.781144 \n",
"3 0.384451 0.575734 0.784190 ... 0.441665 0.035555 0.452744 \n",
"4 0.258110 0.566559 0.784649 ... 0.693407 0.926780 0.408043 \n",
"5 0.387603 0.993695 0.246242 ... 0.946644 0.231782 0.627512 \n",
"6 0.490108 0.775930 0.746118 ... 0.665203 0.061236 0.358625 \n",
"7 0.529574 0.495453 0.257734 ... 0.001932 0.101420 0.983574 \n",
"8 0.611525 0.584056 0.224635 ... 0.749615 0.928690 0.101283 \n",
"9 0.656414 0.774967 0.436111 ... 0.642147 0.856291 0.341387 \n",
"10 0.518961 0.343922 0.480079 ... 0.457486 0.518361 0.486320 \n",
"11 0.673027 0.042230 0.362049 ... 0.989255 0.581905 0.774169 \n",
"12 0.842613 0.824175 0.566705 ... 0.991036 0.713567 0.180917 \n",
"13 0.699172 0.926249 0.743934 ... 0.879341 0.622878 0.852618 \n",
"14 0.065668 0.094811 0.951067 ... 0.836231 0.361918 0.953956 \n",
"15 0.593444 0.923923 0.607202 ... 0.009763 0.411909 0.381087 \n",
"16 0.869612 0.203194 0.169342 ... 0.232699 0.251785 0.674025 \n",
"17 0.856784 0.169797 0.859860 ... 0.401008 0.049301 0.566911 \n",
"18 0.087176 0.387802 0.758393 ... 0.430937 0.179346 0.189633 \n",
"19 0.888455 0.923707 0.337835 ... 0.886903 0.013229 0.332263 \n",
"20 0.319682 0.066255 0.093499 ... 0.488052 0.108593 0.426679 \n",
"21 0.344183 0.921339 0.680502 ... 0.008726 0.984410 0.614340 \n",
"22 0.982751 0.156271 0.024786 ... 0.435072 0.731842 0.063052 \n",
"23 0.441558 0.973204 0.547581 ... 0.896104 0.510422 0.653590 \n",
"24 0.066138 0.330999 0.341218 ... 0.495380 0.752190 0.911377 \n",
"25 0.044066 0.087739 0.414957 ... 0.549484 0.307840 0.429065 \n",
"26 0.978250 0.396552 0.178603 ... 0.347147 0.567475 0.795042 \n",
"27 0.401531 0.665639 0.550707 ... 0.922921 0.376971 0.972600 \n",
"28 0.820085 0.468000 0.592534 ... 0.571624 0.518391 0.671495 \n",
"29 0.854459 0.139325 0.766485 ... 0.944993 0.171959 0.184221 \n",
"... ... ... ... ... ... ... ... \n",
"9970 0.369563 0.545052 0.973266 ... 0.682402 0.664746 0.349658 \n",
"9971 0.111589 0.523767 0.752033 ... 0.786303 0.019084 0.646271 \n",
"9972 0.807224 0.667111 0.890415 ... 0.358431 0.580032 0.056064 \n",
"9973 0.626709 0.414129 0.236408 ... 0.014692 0.615125 0.276768 \n",
"9974 0.559707 0.434915 0.656175 ... 0.502542 0.094876 0.956319 \n",
"9975 0.973644 0.257897 0.570842 ... 0.679307 0.129266 0.244572 \n",
"9976 0.357929 0.880924 0.290520 ... 0.148349 0.679802 0.727430 \n",
"9977 0.883353 0.130649 0.061272 ... 0.688909 0.714336 0.952581 \n",
"9978 0.280634 0.325208 0.021494 ... 0.486465 0.579847 0.641991 \n",
"9979 0.708715 0.471277 0.877853 ... 0.314410 0.376928 0.502672 \n",
"9980 0.698956 0.188126 0.612170 ... 0.226597 0.443539 0.481554 \n",
"9981 0.074258 0.810852 0.944774 ... 0.425174 0.989240 0.081280 \n",
"9982 0.411751 0.686511 0.671151 ... 0.900563 0.455730 0.751474 \n",
"9983 0.751373 0.516104 0.119198 ... 0.628871 0.039658 0.424998 \n",
"9984 0.144733 0.556892 0.142631 ... 0.888529 0.967846 0.638526 \n",
"9985 0.885271 0.410859 0.233367 ... 0.441395 0.895814 0.657609 \n",
"9986 0.611203 0.845229 0.141502 ... 0.278968 0.886205 0.001281 \n",
"9987 0.291347 0.193768 0.435891 ... 0.840332 0.048047 0.786276 \n",
"9988 0.944753 0.829497 0.557112 ... 0.003764 0.031592 0.014387 \n",
"9989 0.561450 0.605136 0.406719 ... 0.866193 0.597416 0.895885 \n",
"9990 0.540264 0.634092 0.948824 ... 0.453476 0.204638 0.352621 \n",
"9991 0.344813 0.682487 0.870397 ... 0.501749 0.349545 0.126572 \n",
"9992 0.159802 0.827390 0.519971 ... 0.377877 0.624206 0.265249 \n",
"9993 0.456610 0.190433 0.228984 ... 0.957231 0.267369 0.763429 \n",
"9994 0.310116 0.764663 0.507972 ... 0.433727 0.337628 0.888571 \n",
"9995 0.026179 0.784143 0.305558 ... 0.492059 0.637084 0.303195 \n",
"9996 0.235697 0.892777 0.616187 ... 0.703626 0.015397 0.773017 \n",
"9997 0.654947 0.128181 0.025823 ... 0.689640 0.307819 0.826728 \n",
"9998 0.682411 0.338059 0.209986 ... 0.834548 0.710307 0.339326 \n",
"9999 0.781074 0.493973 0.999720 ... 0.214056 0.394862 0.343139 \n",
"\n",
" 9993 9994 9995 9996 9997 9998 9999 \n",
"0 0.990579 0.583530 0.413001 0.239235 0.543748 0.705777 0.646033 \n",
"1 0.006449 0.824344 0.132587 0.092285 0.623396 0.158341 0.460423 \n",
"2 0.869756 0.142089 0.647511 0.205103 0.876117 0.254573 0.739447 \n",
"3 0.877581 0.144822 0.309522 0.169773 0.497065 0.638984 0.885435 \n",
"4 0.574559 0.442395 0.239077 0.830473 0.452400 0.816933 0.836611 \n",
"5 0.638591 0.160939 0.455423 0.981441 0.892524 0.845324 0.607496 \n",
"6 0.827488 0.094361 0.173015 0.683129 0.024877 0.287377 0.019582 \n",
"7 0.331180 0.105113 0.915211 0.887249 0.678250 0.912520 0.026752 \n",
"8 0.481720 0.955114 0.998217 0.017245 0.322375 0.962149 0.754960 \n",
"9 0.883914 0.359118 0.209868 0.152013 0.668206 0.410387 0.463557 \n",
"10 0.843686 0.318164 0.685640 0.279326 0.120067 0.450151 0.062217 \n",
"11 0.402561 0.167714 0.431203 0.909684 0.481018 0.180855 0.448191 \n",
"12 0.179326 0.254780 0.792693 0.180319 0.289245 0.807706 0.612095 \n",
"13 0.410043 0.018327 0.324813 0.179031 0.610074 0.113747 0.782857 \n",
"14 0.077283 0.054073 0.413788 0.883891 0.119703 0.567108 0.493008 \n",
"15 0.487510 0.881673 0.984235 0.023525 0.831200 0.194701 0.809376 \n",
"16 0.583732 0.556011 0.502748 0.480303 0.424225 0.323173 0.376954 \n",
"17 0.673314 0.616076 0.529248 0.619883 0.807968 0.333503 0.377679 \n",
"18 0.600484 0.886043 0.233101 0.435130 0.776900 0.474036 0.882069 \n",
"19 0.309682 0.939969 0.283467 0.340298 0.020549 0.905591 0.731557 \n",
"20 0.797270 0.057724 0.505999 0.361333 0.743223 0.214302 0.770101 \n",
"21 0.281166 0.455908 0.332989 0.290663 0.591699 0.433521 0.443143 \n",
"22 0.989807 0.513522 0.697618 0.051160 0.303732 0.119267 0.016446 \n",
"23 0.076171 0.058290 0.929248 0.985343 0.442535 0.096128 0.417527 \n",
"24 0.006507 0.247934 0.810197 0.174798 0.908177 0.179074 0.523347 \n",
"25 0.220030 0.967252 0.049362 0.008632 0.403881 0.648648 0.158389 \n",
"26 0.132988 0.102712 0.194496 0.197294 0.346888 0.721723 0.361676 \n",
"27 0.833217 0.719600 0.963076 0.867103 0.713219 0.968959 0.894023 \n",
"28 0.912193 0.124609 0.581010 0.403539 0.882225 0.307709 0.992697 \n",
"29 0.388392 0.806966 0.931385 0.993568 0.634777 0.608329 0.091003 \n",
"... ... ... ... ... ... ... ... \n",
"9970 0.318262 0.490528 0.580008 0.306727 0.284050 0.453405 0.509526 \n",
"9971 0.224447 0.540510 0.677623 0.560761 0.053813 0.020443 0.844299 \n",
"9972 0.226071 0.739247 0.301603 0.528886 0.504747 0.259486 0.944662 \n",
"9973 0.549361 0.713613 0.410058 0.259048 0.092261 0.925426 0.900636 \n",
"9974 0.156523 0.265497 0.398759 0.857795 0.569329 0.677445 0.470522 \n",
"9975 0.674007 0.196686 0.703443 0.313545 0.562344 0.674212 0.470903 \n",
"9976 0.508699 0.159265 0.282503 0.477486 0.879373 0.763075 0.177490 \n",
"9977 0.148527 0.987284 0.694668 0.299375 0.662287 0.481888 0.240032 \n",
"9978 0.036583 0.667314 0.982583 0.985314 0.377249 0.817899 0.188749 \n",
"9979 0.367149 0.873666 0.620355 0.735473 0.913797 0.584401 0.603738 \n",
"9980 0.679427 0.539417 0.945132 0.279108 0.790695 0.226565 0.060459 \n",
"9981 0.775405 0.129282 0.426818 0.439394 0.365707 0.037829 0.525208 \n",
"9982 0.931659 0.217235 0.932909 0.426066 0.289857 0.612639 0.317825 \n",
"9983 0.625921 0.681629 0.532062 0.503189 0.357148 0.851982 0.264797 \n",
"9984 0.821088 0.052063 0.706853 0.901010 0.940888 0.372582 0.064695 \n",
"9985 0.320441 0.436304 0.741178 0.906136 0.061229 0.412660 0.811483 \n",
"9986 0.513632 0.447760 0.110487 0.215771 0.488483 0.456687 0.804579 \n",
"9987 0.077125 0.820564 0.492386 0.652509 0.435928 0.686591 0.204746 \n",
"9988 0.279091 0.432025 0.466432 0.316668 0.541347 0.848080 0.075929 \n",
"9989 0.590639 0.525026 0.691657 0.236298 0.759277 0.825491 0.465912 \n",
"9990 0.003852 0.152794 0.280258 0.648638 0.177251 0.051770 0.159315 \n",
"9991 0.813689 0.515471 0.305692 0.715525 0.006987 0.711559 0.830609 \n",
"9992 0.604796 0.949387 0.998148 0.411342 0.723347 0.571842 0.281479 \n",
"9993 0.326853 0.583882 0.662962 0.274828 0.641714 0.226834 0.116271 \n",
"9994 0.761365 0.870598 0.165884 0.046260 0.261919 0.782814 0.422424 \n",
"9995 0.062421 0.929250 0.895157 0.885396 0.367180 0.183393 0.561693 \n",
"9996 0.934825 0.098815 0.721886 0.524932 0.829147 0.929684 0.533885 \n",
"9997 0.426333 0.623451 0.501839 0.939246 0.263234 0.519483 0.001875 \n",
"9998 0.771934 0.633576 0.959917 0.178403 0.652986 0.156733 0.367656 \n",
"9999 0.736754 0.840996 0.696570 0.143770 0.343208 0.347218 0.202880 \n",
"\n",
"[10000 rows x 10000 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"host_df"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.157676\n",
"1 0.016645\n",
"2 0.622964\n",
"3 0.380586\n",
"4 0.275588\n",
"5 0.025985\n",
"6 0.543504\n",
"7 0.038374\n",
"8 0.920898\n",
"9 0.854654\n",
"dtype: float64"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"host_sr[:10]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5gAAAIICAYAAAAL2UFKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAZzElEQVR4nO3df7DddZ3f8de7CRhBxZVk/BVomKlKAgYiFxxHBym720FlpDjYwshWBM0UqmPHOhVHZxwc/cOWUfqH65SxttpCFVOZMnTRssAKjD8wcTESsnStRo1FiMFVWJMF5NM/uDLIBu+Jed97c5LHYyaTc+753HPf985nCM/7/Z7vqTFGAAAAYF/9g8UeAAAAgAODwAQAAKCFwAQAAKCFwAQAAKCFwAQAAKCFwAQAAKDF0vl40uXLl49Vq1bNx1MDAACwiDZt2vSzMcaKPT02L4G5atWqbNy4cT6eGgAAgEVUVT98usecIgsAAEALgQkAAEALgQkAAECLeXkNJgAAwDR45JFHsn379uzevXuxR9nvLFu2LCtXrswhhxwy8ecITAAA4KC1ffv2PPvZz86qVatSVYs9zn5jjJGdO3dm+/btOeaYYyb+PKfIAgAAB63du3fnyCOPFJdPUVU58sgj9/rIrsAEAAAOauJyz36fn4vABAAAOACddtpp2bhx44J+Ta/BBAAAmNV9MHOM3ufb3zmCCQAAsIi2bduWY489Nm95y1uyevXqnHPOOfnVr36VD3/4wzn55JNz/PHHZ/369RmztXraaaflfe97X0455ZS89KUvzW233ZYk2bVrV84999ysXr06Z599dnbt2vXE17j44oszMzOT4447Lh/60Iee+Pill16aNWvWZO3atXnve9+7z9+LwAQAAFhk99xzTy655JJs3bo1z3nOc/Knf/qneec735lvfetbueuuu7Jr165cf/31T6x/9NFHc8cdd+SKK67IZZddliT51Kc+lcMOOyxbt27NZZddlk2bNj2x/qMf/Wg2btyYzZs356tf/Wo2b96cnTt35tprr82WLVuyefPmfPCDH9zn70NgAgAALLKjjjoqr371q5Mk559/fm6//fbccssteeUrX5mXv/zlufnmm7Nly5Yn1r/pTW9Kkpx00knZtm1bkuTWW2/N+eefnyRZu3Zt1q5d+8T6a665Jq94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CQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQAuBCQAAQIuJA7OqllTVX1bV9fM5EAAAANNpb45gvjvJ1vkaBAAAgOk2UWBW1cokb0jy6fkdBwAAgGk16RHMK5L82ySPPd2CqlpfVRurauOOHTtahgMAAGB6zBmYVXVmkvvHGJt+17oxxpVjjJkxxsyKFSvaBgQAAGA6THIE89VJ3lhV25J8PsnpVfXf5nUqAAAAps6cgTnGeP8YY+UYY1WSc5PcPMY4f94nAwAAYKp4H0wAAABaLN2bxWOMv0jyF/MyCQAAAFPNEUwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABaCEwAAABazBmYVbWsqu6oqu9U1ZaqumwhBgMAAGC6LJ1gzd8lOX2M8VBVHZLk9qq6YYzxjXmeDQAAgCkyZ2COMUaSh2bvHjL7Z8znUAAwTaoWewIADiRjimtrotdgVtWSqrozyf1JbhxjfHMPa9ZX1caq2rhjx47uOQEAANjPTRSYY4xfjzFOTLIyySlVdfwe1lw5xpgZY8ysWLGie04AAAD2c3t1Fdkxxt8kuSXJGfMzDgAAANNqkqvIrqiq587efmaSP07yV/M9GAAAANNlkqvIvjDJZ6tqSR4P0mvGGNfP71gAAABMm0muIrs5yboFmAUAAIAptlevwQQAAICnIzABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoITABAABoMWdgVtVRVXVLVd1dVVuq6t0LMRgAAADTZekEax5N8m/GGN+uqmcn2VRVN44x7p7n2QAAAJgicx7BHGPcO8b49uztB5NsTfLi+R4MAACA6bJXr8GsqlVJ1iX55nwMAwAAwPSaODCr6llJ/keSfz3G+OUeHl9fVRurauOOHTs6ZwQAAGAKTBSY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\n",
"text/plain": [
"<Figure size 1152x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_impls()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 4871331 function calls (4861321 primitive calls) in 7.346 seconds\n",
"\n",
" Ordered by: cumulative time\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 0.000 0.000 7.346 7.346 {built-in method builtins.exec}\n",
" 1 0.039 0.039 7.346 7.346 <string>:1(<module>)\n",
" 1 0.000 0.000 6.846 6.846 <ipython-input-10-94b44f2c14d2>:1(f)\n",
" 1 0.000 0.000 6.845 6.845 dataframe.py:834(__add__)\n",
" 1 1.113 1.113 6.845 6.845 dataframe.py:755(_apply_op)\n",
" 10000 0.011 0.000 3.935 0.000 dataframe.py:759(op)\n",
" 10000 0.014 0.000 3.920 0.000 series.py:667(__add__)\n",
" 10000 0.071 0.000 3.907 0.000 series.py:588(_binaryop)\n",
" 10000 0.064 0.000 3.482 0.000 numerical.py:79(binary_operator)\n",
" 10000 0.089 0.000 3.370 0.000 numerical.py:429(_numeric_column_binop)\n",
" 10000 0.059 0.000 2.071 0.000 column.py:1055(column_empty)\n",
" 10000 0.104 0.000 1.750 0.000 dataframe.py:433(__setitem__)\n",
" 10000 1.268 0.000 1.615 0.000 dataframe.py:1564(insert)\n",
" 10000 0.042 0.000 1.503 0.000 rmm.py:167(device_array)\n",
" 10000 0.054 0.000 1.082 0.000 rmm.py:31(_array_helper)\n",
" 10000 0.440 0.000 0.787 0.000 {cudf._lib.binops.apply_op}\n",
" 10001 0.060 0.000 0.490 0.000 devicearray.py:65(__init__)\n",
" 10000 0.007 0.000 0.472 0.000 devices.py:209(get_context)\n",
" 50000 0.206 0.000 0.469 0.000 dtypes.py:71(is_categorical_dtype)\n",
" 10002 0.013 0.000 0.465 0.000 devices.py:131(get_or_create_context)\n",
" 10001 0.011 0.000 0.461 0.000 utils.py:673(__call__)\n",
" 10000 0.004 0.000 0.448 0.000 rmm.py:277(finalizer)\n",
" 10000 0.432 0.000 0.444 0.000 {rmm._lib.lib.rmm_free}\n",
" 10002 0.078 0.000 0.441 0.000 devices.py:145(_get_or_create_context_uncached)\n",
" 10001 0.189 0.000 0.413 0.000 dummyarray.py:149(from_desc)\n",
" 10000 0.044 0.000 0.344 0.000 dataframe.py:1531(_prepare_series_for_add)\n",
" 10004 0.209 0.000 0.322 0.000 driver.py:379(__enter__)\n",
" 230010 0.163 0.000 0.315 0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)\n",
" 10000 0.053 0.000 0.302 0.000 column.py:1089(build_column)\n",
" 10000 0.272 0.000 0.289 0.000 {rmm._lib.lib.rmm_alloc}\n",
" 30000 0.060 0.000 0.283 0.000 numerical.py:28(__init__)\n",
" 1270256 0.174 0.000 0.225 0.000 {built-in method builtins.isinstance}\n",
" 10000 0.028 0.000 0.223 0.000 numerical.py:59(replace)\n",
" 30000 0.060 0.000 0.223 0.000 column.py:856(__init__)\n",
" 10002 0.062 0.000 0.217 0.000 dummyarray.py:159(__init__)\n",
" 10000 0.025 0.000 0.195 0.000 column.py:449(replace)\n",
" 620053 0.156 0.000 0.156 0.000 {built-in method builtins.hasattr}\n",
" 10000 0.016 0.000 0.149 0.000 series.py:941(_normalize_binop_value)\n",
" 30000 0.042 0.000 0.132 0.000 column.py:177(__init__)\n",
" 10000 0.073 0.000 0.132 0.000 numerical.py:120(normalize_binop_value)\n",
" 10000 0.025 0.000 0.130 0.000 dataframe.py:1473(_sanitize_values)\n",
" 70000 0.063 0.000 0.121 0.000 numeric.py:1782(isscalar)\n",
" 20000 0.120 0.000 0.120 0.000 {cudf._lib.nvtx.nvtx_range_push}\n",
" 40000 0.088 0.000 0.119 0.000 series.py:90(__init__)\n",
"220021/210020 0.064 0.000 0.113 0.000 {built-in method builtins.len}\n",
" 10000 0.017 0.000 0.105 0.000 dataframe.py:1437(_sanitize_columns)\n",
" 10000 0.017 0.000 0.096 0.000 column.py:462(view)\n",
" 10002 0.027 0.000 0.095 0.000 dummyarray.py:193(_compute_extent)\n",
" 20005 0.067 0.000 0.093 0.000 driver.py:290(safe_cuda_api_call)\n",
" 100012 0.057 0.000 0.077 0.000 common.py:1981(pandas_dtype)\n",
" 20000 0.027 0.000 0.076 0.000 dtypes.py:160(is_list_like)\n",
" 10000 0.036 0.000 0.075 0.000 buffer.py:30(__init__)\n",
" 10001 0.024 0.000 0.065 0.000 driver.py:1244(__init__)\n",
" 10000 0.015 0.000 0.064 0.000 series.py:238(_copy_construct)\n",
" 10000 0.031 0.000 0.061 0.000 column.py:893(_replace_defaults)\n",
" 20000 0.060 0.000 0.060 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
" 10000 0.019 0.000 0.054 0.000 api.py:202(_prepare_shape_strides_dtype)\n",
" 60013 0.018 0.000 0.051 0.000 abc.py:137(__instancecheck__)\n",
" 20004 0.019 0.000 0.050 0.000 dummyarray.py:109(compute_index)\n",
" 30000 0.026 0.000 0.046 0.000 column.py:218(_update_null_count)\n",
" 10002 0.028 0.000 0.044 0.000 dummyarray.py:169(_compute_layout)\n",
" 30000 0.016 0.000 0.044 0.000 buffer.py:189(is_contiguous)\n",
" 10000 0.008 0.000 0.042 0.000 <__array_function__ internals>:2(result_type)\n",
" 10001 0.038 0.000 0.041 0.000 utils.py:655(__init__)\n",
" 10000 0.010 0.000 0.040 0.000 <__array_function__ internals>:2(min_scalar_type)\n",
" 20000 0.029 0.000 0.039 0.000 column.py:423(_replace_defaults)\n",
" 10000 0.019 0.000 0.038 0.000 utils.py:149(get_result_name)\n",
" 10000 0.032 0.000 0.037 0.000 index.py:458(__contains__)\n",
" 60013 0.033 0.000 0.033 0.000 {built-in method _abc._abc_instancecheck}\n",
" 10000 0.031 0.000 0.032 0.000 api.py:215(_fill_stride_by_order)\n",
" 20004 0.013 0.000 0.031 0.000 {built-in method builtins.sum}\n",
" 10000 0.013 0.000 0.030 0.000 driver.py:1827(memory_size_from_info)\n",
" 40001 0.022 0.000 0.028 0.000 devicearray.py:172(device_ctypes_pointer)\n",
" 30000 0.018 0.000 0.027 0.000 devicearray.py:439(is_c_contiguous)\n",
" 10000 0.007 0.000 0.027 0.000 dtypes.py:125(is_scalar)\n",
" 30000 0.015 0.000 0.026 0.000 index.py:491(__len__)\n",
"50158/50157 0.020 0.000 0.020 0.000 {built-in method builtins.getattr}\n",
" 10000 0.007 0.000 0.020 0.000 cudautils.py:27(to_device)\n",
" 90000 0.020 0.000 0.020 0.000 column.py:309(__len__)\n",
" 40008 0.011 0.000 0.019 0.000 dummyarray.py:110(<genexpr>)\n",
" 20005 0.010 0.000 0.018 0.000 __init__.py:1356(debug)\n",
" 40005 0.016 0.000 0.016 0.000 {built-in method builtins.max}\n",
" 10000 0.015 0.000 0.015 0.000 {built-in method numba.mviewbuf.memoryview_get_extents_info}\n",
" 10000 0.012 0.000 0.013 0.000 series.py:235(_copy_construct_defaults)\n",
" 10004 0.009 0.000 0.013 0.000 driver.py:405(__exit__)\n",
" 10000 0.007 0.000 0.013 0.000 rmm.py:225(auto_device)\n",
" 40002 0.011 0.000 0.011 0.000 {method 'update' of 'dict' objects}\n",
" 20003 0.011 0.000 0.011 0.000 {built-in method _functools.reduce}\n",
" 90000 0.011 0.000 0.011 0.000 column.py:238(name)\n",
" 80000 0.011 0.000 0.011 0.000 column.py:862(dtype)\n",
" 10004 0.005 0.000 0.010 0.000 devices.py:178(_get_attached_context)\n",
" 10002 0.004 0.000 0.010 0.000 devices.py:77(__getattr__)\n",
" 20004 0.007 0.000 0.010 0.000 dummyarray.py:181(is_contig)\n",
" 40001 0.010 0.000 0.010 0.000 {method 'pop' of 'dict' objects}\n",
" 30001 0.009 0.000 0.009 0.000 dummyarray.py:228(is_c_contig)\n",
" 10000 0.003 0.000 0.008 0.000 series.py:388(__len__)\n",
" 20004 0.008 0.000 0.008 0.000 dummyarray.py:81(get_offset)\n",
" 20005 0.008 0.000 0.008 0.000 driver.py:318(_check_error)\n",
" 10002 0.004 0.000 0.008 0.000 <string>:1(__new__)\n",
" 20005 0.008 0.000 0.008 0.000 __init__.py:1614(isEnabledFor)\n",
" 20000 0.008 0.000 0.008 0.000 {cudf._lib.nvtx.nvtx_range_pop}\n",
" 10001 0.005 0.000 0.007 0.000 driver.py:1773(device_memory_size)\n",
" 30009 0.006 0.000 0.006 0.000 {built-in method builtins.next}\n",
" 40001 0.006 0.000 0.006 0.000 driver.py:1308(device_ctypes_pointer)\n",
" 40001 0.006 0.000 0.006 0.000 series.py:210(name)\n",
" 10000 0.006 0.000 0.006 0.000 column.py:409(has_null_mask)\n",
" 10000 0.006 0.000 0.006 0.000 {built-in method numpy.promote_types}\n",
" 10001 0.003 0.000 0.006 0.000 driver.py:1857(is_device_memory)\n",
" 30000 0.006 0.000 0.006 0.000 dataframe.py:523(__len__)\n",
" 10000 0.005 0.000 0.005 0.000 rmm.py:270(_make_finalizer)\n",
" 30001 0.005 0.000 0.005 0.000 series.py:1379(index)\n",
" 10004 0.005 0.000 0.005 0.000 driver.py:364(get_active_context)\n",
" 10002 0.005 0.000 0.005 0.000 dummyarray.py:45(__init__)\n",
" 20004 0.005 0.000 0.005 0.000 {built-in method _ctypes.byref}\n",
" 40002 0.005 0.000 0.005 0.000 column.py:404(null_count)\n",
" 10000 0.004 0.000 0.005 0.000 series.py:2644(_align_indices)\n",
" 10002 0.004 0.000 0.004 0.000 {built-in method builtins.delattr}\n",
" 20004 0.004 0.000 0.004 0.000 dummyarray.py:162(<genexpr>)\n",
" 10002 0.004 0.000 0.004 0.000 devices.py:37(__getitem__)\n",
" 10002 0.004 0.000 0.004 0.000 dummyarray.py:195(<listcomp>)\n",
" 10007 0.004 0.000 0.004 0.000 {built-in method __new__ of type object at 0x565338101240}\n",
" 1 0.004 0.004 0.004 0.004 series.py:1463(to_dict)\n",
" 10002 0.003 0.000 0.003 0.000 driver.py:714(prepare_for_use)\n",
" 20004 0.003 0.000 0.003 0.000 dummyarray.py:105(is_contiguous)\n",
" 10002 0.003 0.000 0.003 0.000 driver.py:516(get_primary_context)\n",
" 20001 0.003 0.000 0.003 0.000 column.py:316(data)\n",
" 20000 0.003 0.000 0.003 0.000 column.py:322(mask)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:211(ndim)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:203(__init__)\n",
" 20004 0.002 0.000 0.002 0.000 dummyarray.py:163(<genexpr>)\n",
" 10000 0.002 0.000 0.002 0.000 devicearray.py:451(__len__)\n",
" 10008 0.002 0.000 0.002 0.000 {built-in method builtins.iter}\n",
" 2 0.000 0.000 0.002 0.001 dataframe.py:1135(columns)\n",
" 10001 0.002 0.000 0.002 0.000 {method 'append' of 'list' objects}\n",
" 4/2 0.000 0.000 0.002 0.001 base.py:253(__new__)\n",
" 10002 0.002 0.000 0.002 0.000 driver.py:409(__bool__)\n",
" 10000 0.002 0.000 0.002 0.000 {method 'keys' of 'collections.OrderedDict' objects}\n",
" 10000 0.002 0.000 0.002 0.000 multiarray.py:584(min_scalar_type)\n",
" 10000 0.002 0.000 0.002 0.000 dataframe.py:1187(index)\n",
" 1 0.000 0.000 0.001 0.001 series.py:1363(to_pandas)\n",
" 1 0.000 0.000 0.001 0.001 numerical.py:186(to_pandas)\n",
" 10000 0.001 0.000 0.001 0.000 multiarray.py:635(result_type)\n",
" 1 0.000 0.000 0.001 0.001 column.py:381(to_array)\n",
" 1 0.000 0.000 0.001 0.001 buffer.py:165(to_array)\n",
" 2 0.000 0.000 0.001 0.000 devices.py:222(_require_cuda_context)\n",
" 4 0.000 0.000 0.001 0.000 common.py:222(asarray_tuplesafe)\n",
" 1 0.000 0.000 0.001 0.001 base.py:3752(_try_convert_to_int_index)\n",
" 1 0.000 0.000 0.000 0.000 series.py:152(__init__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:211(copy_to_host)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1903(device_to_host)\n",
" 2 0.000 0.000 0.000 0.000 cast.py:1193(construct_1d_object_array_from_listlike)\n",
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype}\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:495(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:504(_do_getitem)\n",
" 1 0.000 0.000 0.000 0.000 managers.py:1443(__init__)\n",
" 1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
" 4 0.000 0.000 0.000 0.000 devices.py:111(ensure_context)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:107(__enter__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:1117(__iter__)\n",
" 4 0.000 0.000 0.000 0.000 __init__.py:221(iteritems)\n",
" 23 0.000 0.000 0.000 0.000 base.py:75(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1446(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:537(sanitize_array)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3080(make_block)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:159(__init__)\n",
" 1 0.000 0.000 0.000 0.000 index.py:622(to_pandas)\n",
" 1 0.000 0.000 0.000 0.000 range.py:69(__new__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3034(get_block_type)\n",
" 23 0.000 0.000 0.000 0.000 common.py:1845(_is_dtype_type)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:204(__getitem__)\n",
" 9 0.000 0.000 0.000 0.000 common.py:536(is_interval_dtype)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1078(is_datetime64_any_dtype)\n",
" 7 0.000 0.000 0.000 0.000 common.py:403(is_datetime64_dtype)\n",
" 2 0.000 0.000 0.000 0.000 index.py:993(as_index)\n",
" 3 0.000 0.000 0.000 0.000 common.py:702(is_datetimelike)\n",
" 9 0.000 0.000 0.000 0.000 common.py:572(is_categorical_dtype)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:684(_try_cast)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:973(is_dtype)\n",
" 5 0.000 0.000 0.000 0.000 common.py:503(is_period_dtype)\n",
" 8 0.000 0.000 0.000 0.000 base.py:3632(_values)\n",
" 1 0.000 0.000 0.000 0.000 cast.py:832(maybe_castable)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:827(is_dtype)\n",
" 90 0.000 0.000 0.000 0.000 generic.py:7(_check)\n",
" 3 0.000 0.000 0.000 0.000 _dtype.py:319(_name_get)\n",
" 14 0.000 0.000 0.000 0.000 common.py:1702(is_extension_array_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:136(_simple_new)\n",
" 1 0.000 0.000 0.000 0.000 range.py:176(_data)\n",
" 2 0.000 0.000 0.000 0.000 base.py:504(_simple_new)\n",
" 8 0.000 0.000 0.000 0.000 common.py:434(is_datetime64tz_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dataframe.py:1311(set_index)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:34(__new__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1282(view)\n",
" 2 0.000 0.000 0.000 0.000 index.py:470(copy)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:116(__exit__)\n",
" 7 0.000 0.000 0.000 0.000 inference.py:253(is_list_like)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:66(copy)\n",
" 11 0.000 0.000 0.000 0.000 dataframe.py:305(__setattr__)\n",
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
" 7 0.000 0.000 0.000 0.000 common.py:472(is_timedelta64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 arrays.py:7(extract_array)\n",
" 2 0.000 0.000 0.000 0.000 generic.py:5069(__setattr__)\n",
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
" 1 0.000 0.000 0.000 0.000 range.py:165(_validate_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:786(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 common.py:131(is_object_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:262(is_categorical)\n",
" 3 0.000 0.000 0.000 0.000 numerictypes.py:365(issubdtype)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:929(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:78(__init__)\n",
" 59 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1802(host_pointer)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:219(<listcomp>)\n",
" 16/10 0.000 0.000 0.000 0.000 dataframe.py:332(__getattr__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:1028(is_int64_dtype)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1578(is_bool_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1369(__init__)\n",
" 4 0.000 0.000 0.000 0.000 series.py:476(_values)\n",
" 14 0.000 0.000 0.000 0.000 dtypes.py:68(find)\n",
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_all)\n",
" 2 0.000 0.000 0.000 0.000 _asarray.py:16(asarray)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:268(_reconstruct)\n",
" 5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:416(parent)\n",
" 2 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 series.py:354(_set_axis)\n",
" 1 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:53(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:160(is_sparse)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
" 2 0.000 0.000 0.000 0.000 series.py:392(name)\n",
" 18 0.000 0.000 0.000 0.000 common.py:117(classes)\n",
" 2 0.000 0.000 0.000 0.000 index.py:439(__init__)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1549(internal_values)\n",
" 2 0.000 0.000 0.000 0.000 common.py:923(is_signed_integer_dtype)\n",
" 6 0.000 0.000 0.000 0.000 numerictypes.py:293(issubclass_)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1844(device_pointer)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1849(device_ctypes_pointer)\n",
" 1 0.000 0.000 0.000 0.000 common.py:350(standardize_mapping)\n",
" 18 0.000 0.000 0.000 0.000 common.py:119(<lambda>)\n",
" 3 0.000 0.000 0.000 0.000 common.py:980(is_unsigned_integer_dtype)\n",
" 1 0.000 0.000 0.000 0.000 column.py:642(to_dense_buffer)\n",
" 2 0.000 0.000 0.000 0.000 range.py:89(ensure_int)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:127(__init__)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:452(construct_from_string)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1809(_get_dtype)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:237(helper)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:199(mgr_locs)\n",
" 2 0.000 0.000 0.000 0.000 copyreg.py:87(__newobj__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:1039(_setdefault_name)\n",
" 3 0.000 0.000 0.000 0.000 range.py:510(__len__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:633(_reset_identity)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:81(__init__)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:5053(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:672(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 inference.py:121(is_iterator)\n",
" 1 0.000 0.000 0.000 0.000 common.py:746(is_dtype_equal)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1545(is_float_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dummyarray.py:236(iter_contiguous_extent)\n",
" 2 0.000 0.000 0.000 0.000 {method '__reduce_ex__' of 'object' objects}\n",
" 1 0.000 0.000 0.000 0.000 index.py:568(dtype)\n",
" 2 0.000 0.000 0.000 0.000 cycler.py:227(<genexpr>)\n",
" 2 0.000 0.000 0.000 0.000 _internal.py:865(npy_ctypes_check)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numba.mviewbuf.memoryview_get_buffer}\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1393(__getattr__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
" 2 0.000 0.000 0.000 0.000 series.py:399(name)\n",
" 5 0.000 0.000 0.000 0.000 common.py:127(<lambda>)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1787(_is_datetime_dtype)\n",
" 1 0.000 0.000 0.000 0.000 abc.py:141(__subclasscheck__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
" 5 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}\n",
" 4 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
" 3 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 index.py:268(rename)\n",
" 1 0.000 0.000 0.000 0.000 series.py:382(_set_subtyp)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3806(_coerce_to_ndarray)\n",
" 1 0.000 0.000 0.000 0.000 base.py:5318(ensure_index)\n",
" 2 0.000 0.000 0.000 0.000 base.py:475(<genexpr>)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:181(_set_attached_context)\n",
" 3 0.000 0.000 0.000 0.000 driver.py:1257(owner)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1794(_workaround_for_datetime)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1868(require_device_memory)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:262(reshape)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:407(_compute_size)\n",
" 1 0.000 0.000 0.000 0.000 {method 'indices' of 'slice' objects}\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:232(_add_empty_columns)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1488(_block)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:195(mgr_locs)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:89(_check_ndim)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:113(is_all_dates)\n",
" 2 0.000 0.000 0.000 0.000 base.py:652(__len__)\n",
" 5 0.000 0.000 0.000 0.000 common.py:122(classes_and_not_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1380(deref)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:160(_default_stream)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:220(<listcomp>)\n",
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _weakref.proxy}\n",
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.abs}\n",
" 2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}\n",
" 4 0.000 0.000 0.000 0.000 blocks.py:165(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 common.py:175(_all_none)\n",
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:234(<genexpr>)\n",
" 1 0.000 0.000 0.000 0.000 inspect.py:72(isclass)\n",
"\n",
"\n"
]
}
],
"source": [
"def f():\n",
" r = g_df + g_sr \n",
"cProfile.run('f()', sort='cumtime')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 10k Columns, 100k Rows"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"host_df, host_sr, g_df, g_sr = generate_data(1e5, 1e4)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA54AAAIICAYAAAAGxzENAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAbUElEQVR4nO3dcayldX3n8c93Z8ARVKrMrFYHdsiuhRlwdPRi17VBg25DlUht6C5EuiLYyWJ0u2ubFmMTo6nJuiXqJmvdJdZWd8GKs5ISttRSoAVSqs5YHBmmVFcpHYswHVyVFRYov/2DW4Lj4FzuOd9775x5vRIy9zznuef53ptfgPc8zzlPjTECAAAAXf7Rcg8AAADAbBOeAAAAtBKeAAAAtBKeAAAAtBKeAAAAtBKeAAAAtFq9lAdbu3bt2LBhw1IeEgAAgCWyY8eOvxtjrNt/+5KG54YNG7J9+/alPCQAAABLpKr++kDbXWoLAABAK+EJAABAK+EJAABAqyV9j+eBPPzww9mzZ08efPDB5R5lxVmzZk3Wr1+fI444YrlHAQAAWLRlD889e/bkmc98ZjZs2JCqWu5xVowxRvbt25c9e/bkhBNOWO5xAAAAFm3ZL7V98MEHc+yxx4rO/VRVjj32WGeCAQCAQ96yh2cS0fkk/F4AAIBZsCLCc1a9+tWvdt9SAADgsLfs7/Hc37RP8o0x3dcDAADgqXHGM8mdd96Zk046KW9605uycePGnH322fn+97+f973vfTn11FNzyimnZOvWrRnzFfvqV786v/Zrv5aXv/zl+Ymf+IncdNNNSZIHHngg55xzTjZu3Jg3vvGNeeCBBx4/xkUXXZS5ubmcfPLJec973vP49osvvjibNm3K5s2b8yu/8itL+4MDAAAsAeE574477sjb3va27N69O8961rPyW7/1W3n729+eL37xi7ntttvywAMP5Oqrr358/0ceeSRf+MIX8uEPfzjvfe97kyQf/ehHc9RRR2X37t1573vfmx07djy+//vf//5s3749O3fuzJ/+6Z9m586d2bdvX6688srs2rUrO3fuzK//+q8v+c8NAADQ7aDhWVUfr6p7q+q2Azz3y1U1qmptz3hL57jjjssrX/nKJMl5552Xm2++OTfccEN+8id/Mi960Yty/fXXZ9euXY/v/3M/93NJkpe97GW58847kyQ33nhjzjvvvCTJ5s2bs3nz5sf3v+KKK/LSl740W7Zsya5du3L77bfnmGOOyZo1a3LhhRfms5/9bI466qgl+mkBAACWzkLOeP5ukjP231hVxyX56SR3TXmmZbH/J8hWVd72trdl27Zt+cpXvpJf/MVf/IFbmzztaU9LkqxatSqPPPLIj3ztb3zjG7nkkkty3XXXZefOnXn961+fBx98MKtXr84XvvCFnH322bn66qtzxhk/9GsGAAA45B00PMcYNya57wBPfSjJryaZiY/vueuuu3LLLbckSS6//PL81E/9VJJk7dq1uf/++7Nt27aDvsZpp52Wyy+/PEly2223ZefOnUmS7373uzn66KNzzDHH5J577sk111yTJLn//vvzne98J6973evyoQ99KF/+8pc7fjQAAIBltahPta2qs5J8c4zx5YPda7KqtibZmiTHH3/8Yg63JE488cR85CMfyQUXXJBNmzbloosuyre//e2ccsoped7znpdTTz31oK9x0UUX5S1veUs2btyYjRs35mUve1mS5MUvfnG2bNmSk0466Qcu6f3e976Xs846Kw8++GDGGPngBz/Y+jMCAAAshxoLuN9IVW1IcvUY45SqOirJDUl+eozxnaq6M8ncGOPvDvY6c3NzY//7Wu7evTsbN25cxOjTc+edd+bMM8/Mbbf90NtYl91K+P0AAAAsRFXtGGPM7b99MZ9q+0+TnJDky/PRuT7Jl6rqeZONCAAAwCx6ypfajjG+kuQf/8Pjp3LGc6XasGHDijzbCQAAMAsWcjuVTyW5JcmJVbWnqi7sHwsAAIBZcdAznmOMcw/y/IapTQMAAMDMWcx7PAEAAGDBFnU7FQDg4A5yxzEAeEoWcEOSFcsZzwmcf/752bZtW5Lkpptuysknn5yXvOQleeCBB5Z5MgAAgJVj5YVn1XT/WSKXXXZZ3vWud+XWW2/N05/+9CU7LgAAwErnUtskn/zkJ3PJJZekqrJ58+asWrUqZ555Zs4+++wkyTOe8Yzcf//9GWPkHe94R6699tocd9xxOfLII5MkH/vYx3LFFVfkc5/7XK655ppcdtlly/njAAAArCiHfXju2rUrv/Ebv5E/+7M/y9q1a3Pfffflne985wH3vfLKK3PHHXfk9ttvzz333JNNmzblggsuyFvf+tbcfPPNPxCrAAAAPGblXWq7xK6//vr8/M//fNauXZskec5znvOk+954440599xzs2rVqjz/+c/P6aefvlRjAgAAHLIO+/A8kNWrV+fRRx9Nkjz66KN56KGHlnkiAACAQ9dhH56nn356PvOZz2Tfvn1Jkvvuuy8bNmzIjh07kiRXXXVVHn744STJaaedlk9/+tP5+7//+9x999254YYblm1uAACAQ8Vh/x7Pk08+Oe9+97vzqle9KqtWrcqWLVvygQ98IGeddVZe/OIX54wzzsjRRx+dJHnjG9+Y66+/Pps2bcrxxx+fV7ziFcs8PQAAwMpXYwnvQjo3Nze2b9/+A9t2796djRs3LtkMhxq/H4BD1xLe1QuAw8ASptuiVdWOMcbc/tsP+0ttAQAA6CU8AQAAaCU8AQAAaLUiwnMp32d6KPF7AQAAZsGyh+eaNWuyb98+kbWfMUb27duXNWvWLPcoAAAAE1n226msX78+e/bsyd69e5d7lBVnzZo1Wb9+/XKPAQAAMJFlD88jjjgiJ5xwwnKPAQAAQJNlv9QWAACA2SY8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaCU8AQAAaHXQ8Kyqj1fVvVV12xO2/WZV/WVV7ayqK6vqx3rHBAAA4FC1kDOev5vkjP22XZvklDHG5iR/leRdU54LAACAGXHQ8Bxj3Jjkvv22/dEY45H5h3+eZH3DbAAAAMyAabzH84Ik10zhdQAAAJhBE4VnVb07ySNJLvsR+2ytqu1VtX3v3r2THA4AAIBD0KLDs6rOT3JmkjeNMcaT7TfGuHSMMTfGmFu3bt1iDwcAAMAhavVivqmqzkjyq0leNcb4/nRHAgAAYJYs5HYqn0pyS5ITq2pPVV2Y5L8keWaSa6vq1qr6r81zAgAAcIg66BnPMca5B9j82w2zAAAAMIOm8am2AAAA8KSEJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK2EJwAAAK1WL/cAK07Vck8AwMwYyz0AAKwIzngCAADQSngCAADQSngCAADQSngCAADQSngCAADQSngCAADQ6qDhWVUfr6p7q+q2J2x7TlVdW1Vfnf/z2b1jAgAAcKhayBnP301yxn7bLk5y3RjjhUmum38MAAAAP+Sg4TnGuDHJffttPivJJ+a//kSSn53yXAAAAMyIxb7H87ljjLvnv/5Wkuc+2Y5VtbWqtlfV9r179y7ycAAAAByqJv5woTHGSDJ+xPOXjjHmxhhz69atm/RwAAAAHGIWG573VNWPJ8n8n/dObyQAAABmyWLD86okb57/+s1Jfn864wAAADBrFnI7lU8luSXJiVW1p6ouTPIfk/zLqvpqktfOPwYAAIAfsvpgO4wxzn2Sp14z5VkAAACYQRN/uBAAAAD8KMITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVhOFZ1X9h6raVVW3VdWnqmrNtAYDAABgNiw6PKvqBUn+XZK5McYpSVYlOWdagwEAADAbJr3UdnWSp1fV6iRHJfnbyUcCAABgliw6PMcY30xySZK7ktyd5DtjjD+a1mAAAADMhkkutX12krOSnJDk+UmOrqrzDrDf1qraXlXb9+7du/hJAQAAOCRNcqnta5N8Y4yxd4zxcJLPJvkX++80xrh0jDE3xphbt27dBIcDAADgUDRJeN6V5J9X1VFVVUlek2T3dMYCAABgVkzyHs/PJ9mW5EtJvjL/WpdOaS4AAABmxOpJvnmM8Z4k75nSLAAAAMygSW+nAgAAAD+S8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKCV8AQAAKDVROFZVT9WVduq6i+randVvWJagwEAADAbVk/4/f85yR+OMc6uqiOTHDWFmQAAAJghiw7PqjomyWlJzk+SMcZDSR6azlgAAADMikkutT0hyd4kv1NVf1FVH6uqo/ffqaq2VtX2qtq+d+/eCQ4HAADAoWiS8Fyd5KVJPjrG2JLk/ya5eP+dxhiXjjHmxhhz69atm+BwAAAAHIomCc89SfaMMT4//3hbHgtRAAAAeNyiw3OM8a0kf1NVJ85vek2S26cyFQAAADNj0k+1fUeSy+Y/0fbrSd4y+UgAAADMkonCc4xxa5K5Kc0CAADADJrkPZ4AAABwUMITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVsITAACAVhOHZ1Wtqqq/qKqrpzEQAAAAs2UaZzx/KcnuKbwOAAAAM2ii8Kyq9Ulen+Rj0xkHAACAWTPpGc8PJ/nVJI9OYRYAAABm0KLDs6rOTHLvGGPHQfbbWlXbq2r73r17F3s4AAAADlGTnPF8ZZI3VNWdSX4vyelV9T/232mMcekYY26MMbdu3boJDgcAAMChaNHhOcZ41xhj/RhjQ5Jzklw/xjhvapMBAAAwE9zHEwAAgFarp/EiY4w/SfIn03gtAAAAZoszngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALQSngAAALRadHhW1XFVdUNV3V5Vu6rql6Y5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\n",
"text/plain": [
"<Figure size 1152x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_impls()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 4871331 function calls (4861321 primitive calls) in 11.815 seconds\n",
"\n",
" Ordered by: cumulative time\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 0.000 0.000 11.815 11.815 {built-in method builtins.exec}\n",
" 1 0.050 0.050 11.815 11.815 <string>:1(<module>)\n",
" 1 0.000 0.000 9.263 9.263 <ipython-input-13-94b44f2c14d2>:1(f)\n",
" 1 0.000 0.000 9.263 9.263 dataframe.py:834(__add__)\n",
" 1 1.162 1.162 9.262 9.262 dataframe.py:755(_apply_op)\n",
" 10000 0.012 0.000 5.889 0.001 dataframe.py:759(op)\n",
" 10000 0.014 0.000 5.873 0.001 series.py:667(__add__)\n",
" 10000 0.070 0.000 5.860 0.001 series.py:588(_binaryop)\n",
" 10000 0.062 0.000 5.443 0.001 numerical.py:79(binary_operator)\n",
" 10000 0.085 0.000 5.335 0.001 numerical.py:429(_numeric_column_binop)\n",
" 10000 0.057 0.000 3.875 0.000 column.py:1055(column_empty)\n",
" 10000 0.042 0.000 3.302 0.000 rmm.py:167(device_array)\n",
" 10001 0.013 0.000 2.503 0.000 utils.py:673(__call__)\n",
" 10000 0.004 0.000 2.487 0.000 rmm.py:277(finalizer)\n",
" 10000 2.470 0.000 2.483 0.000 {rmm._lib.lib.rmm_free}\n",
" 10000 0.123 0.000 2.163 0.000 dataframe.py:433(__setitem__)\n",
" 10000 2.138 0.000 2.156 0.000 {rmm._lib.lib.rmm_alloc}\n",
" 10000 1.663 0.000 2.008 0.000 dataframe.py:1564(insert)\n",
" 10000 0.289 0.000 1.018 0.000 rmm.py:31(_array_helper)\n",
" 10000 0.410 0.000 0.761 0.000 {cudf._lib.binops.apply_op}\n",
" 50000 0.207 0.000 0.467 0.000 dtypes.py:71(is_categorical_dtype)\n",
" 10000 0.024 0.000 0.421 0.000 numerical.py:59(replace)\n",
" 10000 0.025 0.000 0.397 0.000 column.py:449(replace)\n",
" 10000 0.045 0.000 0.343 0.000 dataframe.py:1531(_prepare_series_for_add)\n",
" 10001 0.060 0.000 0.342 0.000 devicearray.py:65(__init__)\n",
" 10000 0.007 0.000 0.321 0.000 devices.py:209(get_context)\n",
" 10002 0.013 0.000 0.313 0.000 devices.py:131(get_or_create_context)\n",
" 230010 0.166 0.000 0.313 0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)\n",
" 10000 0.053 0.000 0.305 0.000 column.py:1089(build_column)\n",
" 10002 0.077 0.000 0.290 0.000 devices.py:145(_get_or_create_context_uncached)\n",
" 30000 0.064 0.000 0.286 0.000 numerical.py:28(__init__)\n",
" 10001 0.042 0.000 0.266 0.000 dummyarray.py:149(from_desc)\n",
" 10000 0.232 0.000 0.262 0.000 column.py:893(_replace_defaults)\n",
" 1270256 0.175 0.000 0.227 0.000 {built-in method builtins.isinstance}\n",
" 30000 0.062 0.000 0.222 0.000 column.py:856(__init__)\n",
" 10002 0.062 0.000 0.217 0.000 dummyarray.py:159(__init__)\n",
" 10004 0.064 0.000 0.174 0.000 driver.py:379(__enter__)\n",
" 620053 0.151 0.000 0.151 0.000 {built-in method builtins.hasattr}\n",
" 10000 0.018 0.000 0.149 0.000 series.py:941(_normalize_binop_value)\n",
" 10000 0.026 0.000 0.131 0.000 dataframe.py:1473(_sanitize_values)\n",
" 30000 0.042 0.000 0.129 0.000 column.py:177(__init__)\n",
" 10000 0.071 0.000 0.128 0.000 numerical.py:120(normalize_binop_value)\n",
" 70000 0.061 0.000 0.120 0.000 numeric.py:1782(isscalar)\n",
" 40000 0.088 0.000 0.120 0.000 series.py:90(__init__)\n",
"220021/210020 0.062 0.000 0.114 0.000 {built-in method builtins.len}\n",
" 20000 0.105 0.000 0.105 0.000 {cudf._lib.nvtx.nvtx_range_push}\n",
" 10000 0.017 0.000 0.103 0.000 dataframe.py:1437(_sanitize_columns)\n",
" 10000 0.017 0.000 0.098 0.000 column.py:462(view)\n",
" 10002 0.027 0.000 0.096 0.000 dummyarray.py:193(_compute_extent)\n",
" 20005 0.065 0.000 0.090 0.000 driver.py:290(safe_cuda_api_call)\n",
" 100012 0.058 0.000 0.078 0.000 common.py:1981(pandas_dtype)\n",
" 10000 0.039 0.000 0.078 0.000 buffer.py:30(__init__)\n",
" 20000 0.025 0.000 0.074 0.000 dtypes.py:160(is_list_like)\n",
" 10001 0.024 0.000 0.065 0.000 driver.py:1244(__init__)\n",
" 10000 0.015 0.000 0.064 0.000 series.py:238(_copy_construct)\n",
" 20000 0.057 0.000 0.057 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
" 10000 0.018 0.000 0.052 0.000 api.py:202(_prepare_shape_strides_dtype)\n",
" 60013 0.019 0.000 0.052 0.000 abc.py:137(__instancecheck__)\n",
" 20004 0.020 0.000 0.051 0.000 dummyarray.py:109(compute_index)\n",
" 10002 0.028 0.000 0.044 0.000 dummyarray.py:169(_compute_layout)\n",
" 30000 0.016 0.000 0.043 0.000 buffer.py:189(is_contiguous)\n",
" 30000 0.024 0.000 0.043 0.000 column.py:218(_update_null_count)\n",
" 10001 0.038 0.000 0.041 0.000 utils.py:655(__init__)\n",
" 20000 0.029 0.000 0.040 0.000 column.py:423(_replace_defaults)\n",
" 10000 0.008 0.000 0.040 0.000 <__array_function__ internals>:2(result_type)\n",
" 10000 0.010 0.000 0.039 0.000 <__array_function__ internals>:2(min_scalar_type)\n",
" 10000 0.019 0.000 0.038 0.000 utils.py:149(get_result_name)\n",
" 10000 0.032 0.000 0.038 0.000 index.py:458(__contains__)\n",
" 60013 0.033 0.000 0.033 0.000 {built-in method _abc._abc_instancecheck}\n",
" 40001 0.025 0.000 0.033 0.000 devicearray.py:172(device_ctypes_pointer)\n",
" 20004 0.012 0.000 0.031 0.000 {built-in method builtins.sum}\n",
" 10000 0.029 0.000 0.031 0.000 api.py:215(_fill_stride_by_order)\n",
" 10000 0.013 0.000 0.029 0.000 driver.py:1827(memory_size_from_info)\n",
" 10000 0.007 0.000 0.028 0.000 dtypes.py:125(is_scalar)\n",
" 30000 0.018 0.000 0.027 0.000 devicearray.py:439(is_c_contiguous)\n",
" 30000 0.016 0.000 0.026 0.000 index.py:491(__len__)\n",
" 90000 0.021 0.000 0.021 0.000 column.py:309(__len__)\n",
"50158/50157 0.020 0.000 0.020 0.000 {built-in method builtins.getattr}\n",
" 10000 0.007 0.000 0.020 0.000 cudautils.py:27(to_device)\n",
" 40008 0.011 0.000 0.019 0.000 dummyarray.py:110(<genexpr>)\n",
" 20005 0.010 0.000 0.017 0.000 __init__.py:1356(debug)\n",
" 40005 0.016 0.000 0.016 0.000 {built-in method builtins.max}\n",
" 10000 0.014 0.000 0.014 0.000 {built-in method numba.mviewbuf.memoryview_get_extents_info}\n",
" 10000 0.012 0.000 0.013 0.000 series.py:235(_copy_construct_defaults)\n",
" 10000 0.007 0.000 0.013 0.000 rmm.py:225(auto_device)\n",
" 40002 0.012 0.000 0.012 0.000 {method 'update' of 'dict' objects}\n",
" 80000 0.011 0.000 0.011 0.000 column.py:862(dtype)\n",
" 90000 0.011 0.000 0.011 0.000 column.py:238(name)\n",
" 20003 0.011 0.000 0.011 0.000 {built-in method _functools.reduce}\n",
" 10004 0.006 0.000 0.010 0.000 driver.py:405(__exit__)\n",
" 10004 0.005 0.000 0.010 0.000 devices.py:178(_get_attached_context)\n",
" 20004 0.007 0.000 0.010 0.000 dummyarray.py:181(is_contig)\n",
" 10002 0.004 0.000 0.010 0.000 devices.py:77(__getattr__)\n",
" 40001 0.010 0.000 0.010 0.000 {method 'pop' of 'dict' objects}\n",
" 30001 0.009 0.000 0.009 0.000 dummyarray.py:228(is_c_contig)\n",
" 10000 0.003 0.000 0.009 0.000 series.py:388(__len__)\n",
" 20005 0.008 0.000 0.008 0.000 driver.py:318(_check_error)\n",
" 10002 0.004 0.000 0.008 0.000 <string>:1(__new__)\n",
" 20004 0.008 0.000 0.008 0.000 dummyarray.py:81(get_offset)\n",
" 20005 0.008 0.000 0.008 0.000 __init__.py:1614(isEnabledFor)\n",
" 10001 0.005 0.000 0.007 0.000 driver.py:1773(device_memory_size)\n",
" 40001 0.007 0.000 0.007 0.000 driver.py:1308(device_ctypes_pointer)\n",
" 20000 0.007 0.000 0.007 0.000 {cudf._lib.nvtx.nvtx_range_pop}\n",
" 40001 0.006 0.000 0.006 0.000 series.py:210(name)\n",
" 30009 0.006 0.000 0.006 0.000 {built-in method builtins.next}\n",
" 30001 0.006 0.000 0.006 0.000 series.py:1379(index)\n",
" 30000 0.006 0.000 0.006 0.000 dataframe.py:523(__len__)\n",
" 10001 0.003 0.000 0.005 0.000 driver.py:1857(is_device_memory)\n",
" 20004 0.005 0.000 0.005 0.000 {built-in method _ctypes.byref}\n",
" 10000 0.005 0.000 0.005 0.000 {built-in method numpy.promote_types}\n",
" 10000 0.005 0.000 0.005 0.000 column.py:409(has_null_mask)\n",
" 40002 0.005 0.000 0.005 0.000 column.py:404(null_count)\n",
" 10004 0.005 0.000 0.005 0.000 driver.py:364(get_active_context)\n",
" 10002 0.005 0.000 0.005 0.000 dummyarray.py:195(<listcomp>)\n",
" 10000 0.005 0.000 0.005 0.000 rmm.py:270(_make_finalizer)\n",
" 10002 0.005 0.000 0.005 0.000 dummyarray.py:45(__init__)\n",
" 10000 0.004 0.000 0.005 0.000 series.py:2644(_align_indices)\n",
" 10002 0.005 0.000 0.005 0.000 {built-in method builtins.delattr}\n",
" 20004 0.004 0.000 0.004 0.000 dummyarray.py:162(<genexpr>)\n",
" 2 0.000 0.000 0.004 0.002 dataframe.py:1135(columns)\n",
" 10007 0.004 0.000 0.004 0.000 {built-in method __new__ of type object at 0x565338101240}\n",
" 10002 0.004 0.000 0.004 0.000 devices.py:37(__getitem__)\n",
" 4/2 0.000 0.000 0.004 0.002 base.py:253(__new__)\n",
" 10002 0.004 0.000 0.004 0.000 driver.py:714(prepare_for_use)\n",
" 20004 0.003 0.000 0.003 0.000 dummyarray.py:105(is_contiguous)\n",
" 10002 0.003 0.000 0.003 0.000 driver.py:516(get_primary_context)\n",
" 20001 0.003 0.000 0.003 0.000 column.py:316(data)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:203(__init__)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:211(ndim)\n",
" 20000 0.003 0.000 0.003 0.000 column.py:322(mask)\n",
" 20004 0.003 0.000 0.003 0.000 dummyarray.py:163(<genexpr>)\n",
" 10002 0.002 0.000 0.002 0.000 driver.py:409(__bool__)\n",
" 1 0.002 0.002 0.002 0.002 series.py:1463(to_dict)\n",
" 10008 0.002 0.000 0.002 0.000 {built-in method builtins.iter}\n",
" 10000 0.002 0.000 0.002 0.000 devicearray.py:451(__len__)\n",
" 10001 0.002 0.000 0.002 0.000 {method 'append' of 'list' objects}\n",
" 4 0.002 0.000 0.002 0.001 common.py:222(asarray_tuplesafe)\n",
" 10000 0.002 0.000 0.002 0.000 {method 'keys' of 'collections.OrderedDict' objects}\n",
" 10000 0.002 0.000 0.002 0.000 multiarray.py:584(min_scalar_type)\n",
" 10000 0.002 0.000 0.002 0.000 dataframe.py:1187(index)\n",
" 1 0.000 0.000 0.001 0.001 series.py:1363(to_pandas)\n",
" 1 0.000 0.000 0.001 0.001 numerical.py:186(to_pandas)\n",
" 10000 0.001 0.000 0.001 0.000 multiarray.py:635(result_type)\n",
" 1 0.001 0.001 0.001 0.001 base.py:3752(_try_convert_to_int_index)\n",
" 1 0.000 0.000 0.001 0.001 column.py:381(to_array)\n",
" 1 0.000 0.000 0.001 0.001 buffer.py:165(to_array)\n",
" 2 0.000 0.000 0.001 0.000 devices.py:222(_require_cuda_context)\n",
" 1 0.000 0.000 0.000 0.000 series.py:152(__init__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:211(copy_to_host)\n",
" 2 0.000 0.000 0.000 0.000 cast.py:1193(construct_1d_object_array_from_listlike)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1903(device_to_host)\n",
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype}\n",
" 1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:495(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:504(_do_getitem)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:159(__init__)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:111(ensure_context)\n",
" 1 0.000 0.000 0.000 0.000 index.py:622(to_pandas)\n",
" 1 0.000 0.000 0.000 0.000 managers.py:1443(__init__)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:107(__enter__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:1117(__iter__)\n",
" 4 0.000 0.000 0.000 0.000 __init__.py:221(iteritems)\n",
" 23 0.000 0.000 0.000 0.000 base.py:75(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3080(make_block)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1446(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 range.py:69(__new__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3034(get_block_type)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:537(sanitize_array)\n",
" 2 0.000 0.000 0.000 0.000 index.py:993(as_index)\n",
" 23 0.000 0.000 0.000 0.000 common.py:1845(_is_dtype_type)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:204(__getitem__)\n",
" 9 0.000 0.000 0.000 0.000 common.py:572(is_categorical_dtype)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1078(is_datetime64_any_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:262(is_categorical)\n",
" 1 0.000 0.000 0.000 0.000 range.py:136(_simple_new)\n",
" 7 0.000 0.000 0.000 0.000 common.py:403(is_datetime64_dtype)\n",
" 9 0.000 0.000 0.000 0.000 common.py:536(is_interval_dtype)\n",
" 3 0.000 0.000 0.000 0.000 common.py:702(is_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:684(_try_cast)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:973(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1282(view)\n",
" 5 0.000 0.000 0.000 0.000 common.py:503(is_period_dtype)\n",
" 11 0.000 0.000 0.000 0.000 dataframe.py:305(__setattr__)\n",
" 90 0.000 0.000 0.000 0.000 generic.py:7(_check)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:827(is_dtype)\n",
" 14 0.000 0.000 0.000 0.000 common.py:1702(is_extension_array_dtype)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:34(__new__)\n",
" 1 0.000 0.000 0.000 0.000 cast.py:832(maybe_castable)\n",
" 3 0.000 0.000 0.000 0.000 _dtype.py:319(_name_get)\n",
" 2 0.000 0.000 0.000 0.000 index.py:470(copy)\n",
" 8 0.000 0.000 0.000 0.000 base.py:3632(_values)\n",
" 1 0.000 0.000 0.000 0.000 dataframe.py:1311(set_index)\n",
" 1 0.000 0.000 0.000 0.000 arrays.py:7(extract_array)\n",
" 8 0.000 0.000 0.000 0.000 common.py:434(is_datetime64tz_dtype)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:66(copy)\n",
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
" 7 0.000 0.000 0.000 0.000 inference.py:253(is_list_like)\n",
" 2 0.000 0.000 0.000 0.000 generic.py:5069(__setattr__)\n",
" 2 0.000 0.000 0.000 0.000 base.py:504(_simple_new)\n",
" 7 0.000 0.000 0.000 0.000 common.py:472(is_timedelta64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:165(_validate_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:176(_data)\n",
" 59 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:78(__init__)\n",
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:219(<listcomp>)\n",
" 16/10 0.000 0.000 0.000 0.000 dataframe.py:332(__getattr__)\n",
" 14 0.000 0.000 0.000 0.000 dtypes.py:68(find)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:929(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
" 3 0.000 0.000 0.000 0.000 numerictypes.py:365(issubdtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1369(__init__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1802(host_pointer)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:786(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 common.py:1028(is_int64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:53(__getitem__)\n",
" 2 0.000 0.000 0.000 0.000 series.py:392(name)\n",
" 4 0.000 0.000 0.000 0.000 series.py:476(_values)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1578(is_bool_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:116(__exit__)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:237(helper)\n",
" 1 0.000 0.000 0.000 0.000 common.py:350(standardize_mapping)\n",
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_all)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:81(__init__)\n",
" 1 0.000 0.000 0.000 0.000 series.py:354(_set_axis)\n",
" 2 0.000 0.000 0.000 0.000 _asarray.py:16(asarray)\n",
" 2 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 generic.py:127(__init__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:160(is_sparse)\n",
" 1 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
" 2 0.000 0.000 0.000 0.000 copy.py:268(_reconstruct)\n",
" 2 0.000 0.000 0.000 0.000 index.py:439(__init__)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
" 5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:416(parent)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1549(internal_values)\n",
" 2 0.000 0.000 0.000 0.000 range.py:89(ensure_int)\n",
" 18 0.000 0.000 0.000 0.000 common.py:119(<lambda>)\n",
" 6 0.000 0.000 0.000 0.000 numerictypes.py:293(issubclass_)\n",
" 1 0.000 0.000 0.000 0.000 index.py:568(dtype)\n",
" 1 0.000 0.000 0.000 0.000 column.py:642(to_dense_buffer)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1844(device_pointer)\n",
" 2 0.000 0.000 0.000 0.000 dummyarray.py:236(iter_contiguous_extent)\n",
" 18 0.000 0.000 0.000 0.000 common.py:117(classes)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1849(device_ctypes_pointer)\n",
" 1 0.000 0.000 0.000 0.000 abc.py:141(__subclasscheck__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:199(mgr_locs)\n",
" 2 0.000 0.000 0.000 0.000 common.py:923(is_signed_integer_dtype)\n",
" 3 0.000 0.000 0.000 0.000 common.py:980(is_unsigned_integer_dtype)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1809(_get_dtype)\n",
" 2 0.000 0.000 0.000 0.000 {method '__reduce_ex__' of 'object' objects}\n",
" 1 0.000 0.000 0.000 0.000 generic.py:5053(__getattr__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:633(_reset_identity)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:452(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
" 5 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}\n",
" 2 0.000 0.000 0.000 0.000 index.py:1039(_setdefault_name)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:232(_add_empty_columns)\n",
" 2 0.000 0.000 0.000 0.000 cycler.py:227(<genexpr>)\n",
" 3 0.000 0.000 0.000 0.000 range.py:510(__len__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:131(is_object_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:262(reshape)\n",
" 2 0.000 0.000 0.000 0.000 copyreg.py:87(__newobj__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:268(rename)\n",
" 1 0.000 0.000 0.000 0.000 base.py:5318(ensure_index)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:672(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 common.py:746(is_dtype_equal)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1545(is_float_dtype)\n",
" 2 0.000 0.000 0.000 0.000 _internal.py:865(npy_ctypes_check)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
" 2 0.000 0.000 0.000 0.000 base.py:475(<genexpr>)\n",
" 2 0.000 0.000 0.000 0.000 inference.py:121(is_iterator)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numba.mviewbuf.memoryview_get_buffer}\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1393(__getattr__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
" 3 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 series.py:399(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1488(_block)\n",
" 4 0.000 0.000 0.000 0.000 blocks.py:165(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:113(is_all_dates)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3806(_coerce_to_ndarray)\n",
" 5 0.000 0.000 0.000 0.000 common.py:122(classes_and_not_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1380(deref)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1787(_is_datetime_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1868(require_device_memory)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.abs}\n",
" 1 0.000 0.000 0.000 0.000 {method 'indices' of 'slice' objects}\n",
" 4 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 series.py:382(_set_subtyp)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:195(mgr_locs)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:89(_check_ndim)\n",
" 2 0.000 0.000 0.000 0.000 base.py:652(__len__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:175(_all_none)\n",
" 5 0.000 0.000 0.000 0.000 common.py:127(<lambda>)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:181(_set_attached_context)\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
" 3 0.000 0.000 0.000 0.000 driver.py:1257(owner)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1794(_workaround_for_datetime)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:160(_default_stream)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:234(<genexpr>)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:220(<listcomp>)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:407(_compute_size)\n",
" 1 0.000 0.000 0.000 0.000 inspect.py:72(isclass)\n",
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _weakref.proxy}\n",
" 2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
"\n",
"\n"
]
}
],
"source": [
"def f():\n",
" r = g_df + g_sr \n",
"cProfile.run('f()', sort='cumtime')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1k Columns, 10k Rows"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"host_df, host_sr, g_df, g_sr = generate_data(1e4, 1e3)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAAIICAYAAAB0CFO7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAbzklEQVR4nO3df7DddX3n8de7iZiKylaSqS0JTWZLJQGjyAW30w4y1J2JP4ZUG3dhyq5ULFNcup1xOyMdHTuy9Q9bR/2HdmSsO9qRQcyU2SyFZSywFaZaubQ0EjLZZimVsJamwVUZSSHls39wZa7pDTmBk/dNbh6PGYbz/Z7PPed9M58hPO8593tqjBEAAADo8iOLPQAAAAAnFiEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAq+WL9cQrV64ca9euXaynBwAA4Ci67777/nGMsWqh+xYtRNeuXZvZ2dnFenoAAACOoqr6u0Pd5625AAAAtBKiAAAAtBKiAAAAtFq03xEFAAA4Hjz99NPZs2dP9u/fv9ijHJNWrFiR1atX5yUvecnEXyNEAQAAnseePXvyile8ImvXrk1VLfY4x5QxRvbt25c9e/Zk3bp1E3+dt+YCAAA8j/379+fUU08VoQuoqpx66qlH/GqxEAUAADgMEXpoL+TPRogCAACcoC688MLMzs62P6/fEQUAADgC035xdIzpPt7xwCuiAAAAx7iHH344Z555Zn75l38569evz5YtW/L9738/1157bc4777ycffbZufLKKzPmqvbCCy/MBz7wgZx//vn5mZ/5mdx9991JkieffDKXXHJJ1q9fn3e84x158sknn3uOq666KjMzMznrrLPy27/928+dv+aaa7Jhw4Zs3Lgxv/mbvzmV70eIAgAAHAd27dqV973vfdm5c2de+cpX5vd///dz9dVX5957780DDzyQJ598Mrfccstz6w8cOJCvf/3r+dSnPpWPfOQjSZI/+IM/yMte9rLs3LkzH/nIR3Lfffc9t/6jH/1oZmdns3379vzZn/1Ztm/fnn379uXmm2/Ojh07sn379nzoQx+ayvciRAEAAI4Da9asyc/93M8lSS677LLcc889ueuuu/LGN74xr33ta3PnnXdmx44dz61/5zvfmSQ599xz8/DDDydJvvKVr+Syyy5LkmzcuDEbN258bv1NN92UN7zhDTnnnHOyY8eOPPjggznllFOyYsWKXHHFFfnjP/7jvOxlL5vK9yJEAQAAjgMHX522qvK+970vW7duzTe+8Y386q/+6g99jMpLX/rSJMmyZcty4MCB533sv/3bv83HP/7x3HHHHdm+fXve9ra3Zf/+/Vm+fHm+/vWvZ8uWLbnllluyadOmqXwvQhQAAOA48M1vfjNf/epXkyQ33HBDfv7nfz5JsnLlyjzxxBPZunXrYR/jggsuyA033JAkeeCBB7J9+/YkyXe/+92cfPLJOeWUU/LYY4/ltttuS5I88cQT+c53vpO3vvWt+eQnP5m//uu/nsr34qq5AAAAx4HXvOY1ue666/Ke97wnGzZsyFVXXZVvf/vbOfvss/PqV78655133mEf46qrrsqv/MqvZP369Vm/fn3OPffcJMnrXve6nHPOOTnzzDN/6C3A3/ve97J58+bs378/Y4x84hOfmMr3UmORrhU8MzMzFuPzagAAAI7Ezp07s379+kWd4eGHH87b3/72PPDAA4s6x6Es9GdUVfeNMWYWWu+tuQAAALQSogAAAMe4tWvXHrOvhr4QQhQAAIBWQhQAAIBWQhQAAIBWPr7l+Rz0gbEA8IIt0lXqAeBY5BVRAACAJezyyy/P1q1bkyR33313zjrrrLz+9a/Pk08+uWgzCVEAAIAjUTXdfxp94QtfyG/91m/l/vvvz4/+6I+2Pvd83poLAABwHPj85z+fj3/846mqbNy4McuWLcvb3/72bNmyJUny8pe/PE888UTGGPn1X//1fPnLX86aNWty0kknJUk+85nP5Kabbsrtt9+e2267LV/4whcW7XsRogAAAMe4HTt25Hd+53fy53/+51m5cmUef/zxvP/9719w7c0335xdu3blwQcfzGOPPZYNGzbkPe95T9773vfmnnvu+aF4XSzemgsAAHCMu/POO/Oud70rK1euTJK86lWvOuTar3zlK7n00kuzbNmy/ORP/mQuuuiirjEnJkQBAACOQ8uXL88zzzyTJHnmmWfy1FNPLfJEkxOiAAAAx7iLLrooX/rSl7Jv374kyeOPP561a9fmvvvuS5Js27YtTz/9dJLkggsuyBe/+MX88z//c771rW/lrrvuWrS5D8XviAIAABzjzjrrrHzwgx/Mm970pixbtiznnHNOPvaxj2Xz5s153etel02bNuXkk09OkrzjHe/InXfemQ0bNuT000/Pz/7szy7y9P9SjUX6gO2ZmZkxOzu7KM89seZLKQOwhC3S37cAvHg7d+7M+vXrF3uMY9pCf0ZVdd8YY2ah9d6aCwAAQCshCgAAQCshCgAAQCshCgAAcBiLdW2d48EL+bMRogAAAM9jxYoV2bdvnxhdwBgj+/bty4oVK47o63x8CwAAwPNYvXp19uzZk7179y72KMekFStWZPXq1Uf0NUIUAADgebzkJS/JunXrFnuMJcVbcwEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGglRAEAAGg1UYhW1aaq2lVVu6vqmgXuv7yq9lbV/XP/vHf6owIAALAULD/cgqpaluS6JP82yZ4k91bVtjHGgwct/eIY4+qjMCMAAABLyCSviJ6fZPcY46ExxlNJbkyy+eiOBQAAwFI1SYieluSRecd75s4d7JeqantVba2qNVOZDgAAgCVnWhcr+h9J1o4xNib5cpLPLbSoqq6sqtmqmt27d++UnhoAAIDjySQh+miS+a9wrp4795wxxr4xxj/NHX4mybkLPdAY4/oxxswYY2bVqlUvZF4AAACOc5OE6L1JzqiqdVV1UpJLkmybv6CqfmLe4cVJdk5vRAAAAJaSw141d4xxoKquTnJ7kmVJPjvG2FFV1yaZHWNsS/Kfq+riJAeSPJ7k8qM4MwAAAMexGmMsyhPPzMyM2dnZRXnuiVUt9gQALBWL9PctACyWqrpvjDGz0H3TulgRAAAATESIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0EqIAgAA0GqiEK2qTVW1q6p2V9U1z7Pul6pqVNXM9EYEAABgKTlsiFbVsiTXJXlLkg1JLq2qDQuse0WS30jyF9MeEgAAgKVjkldEz0+ye4zx0BjjqSQ3Jtm8wLr/muRjSfZPcT4AAACWmElC9LQkj8w73jN37jlV9YYka8YYfzLF2QAAAFiCXvTFiqrqR5J8Isl/mWDtlVU1W1Wze/fufbFPDQAAwHFokhB9NMmaecer5879wCuSnJ3kf1XVw0n+TZJtC12waIxx/RhjZowxs2rVqhc+NQAAAMetSUL03iRnVNW6qjopySVJtv3gzjHGd8YYK8cYa8cYa5N8LcnFY4zZozIxAAAAx7XDhugY40CSq5PcnmRnkpvGGDuq6tqquvhoDwgAAMDSsnySRWOMW5PcetC5Dx9i7YUvfiwAAACWqhd9sSIAAAA4EkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVkIUAACAVssXewAAOBFULfYEACwlYyz2BC+OV0QBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoJUQBAABoNVGIVtWmqtpVVbur6poF7v+1qvpGVd1fVfdU1YbpjwoAAMBScNgQraplSa5L8pYkG5JcukBo3jDGeO0Y4/VJfjfJJ6Y+KQAAAEvCJK+Inp9k9xjjoTHGU0luTLJ5/oIxxnfnHZ6cZExvRAAAAJaS5ROsOS3JI/OO9yR548GLquo/JXl/kpOSXDSV6QAAAFhypnaxojHGdWOMf53kA0k+tNCaqrqyqmaranbv3r3TemoAAACOI5OE6KNJ1sw7Xj137lBuTPKLC90xxrh+jDEzxphZtWrV5FMCAACwZEwSovcmOaOq1lXVSUkuSbJt/oKqOmPe4duS/M30RgQAAGApOezviI4xDlTV1UluT7IsyWfHGDuq6toks2OMbUmurqo3J3k6ybeTvPtoDg0AAMDxa5KLFWWMcWuSWw869+F5t39jynMBAACwRE3tYkUAAAAwCSEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAKyEKAABAq4lC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\n",
"text/plain": [
"<Figure size 1152x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_impls()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 488329 function calls (487319 primitive calls) in 0.672 seconds\n",
"\n",
" Ordered by: cumulative time\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 0.000 0.000 0.672 0.672 {built-in method builtins.exec}\n",
" 1 0.002 0.002 0.672 0.672 <string>:1(<module>)\n",
" 1 0.000 0.000 0.618 0.618 <ipython-input-16-94b44f2c14d2>:1(f)\n",
" 1 0.000 0.000 0.618 0.618 dataframe.py:834(__add__)\n",
" 1 0.014 0.014 0.618 0.618 dataframe.py:755(_apply_op)\n",
" 1000 0.001 0.000 0.532 0.001 dataframe.py:759(op)\n",
" 1000 0.001 0.000 0.531 0.001 series.py:667(__add__)\n",
" 1000 0.007 0.000 0.530 0.001 series.py:588(_binaryop)\n",
" 1000 0.006 0.000 0.489 0.000 numerical.py:79(binary_operator)\n",
" 1000 0.009 0.000 0.478 0.000 numerical.py:429(_numeric_column_binop)\n",
" 1000 0.006 0.000 0.349 0.000 column.py:1055(column_empty)\n",
" 1000 0.004 0.000 0.294 0.000 rmm.py:167(device_array)\n",
" 1000 0.201 0.000 0.203 0.000 {rmm._lib.lib.rmm_alloc}\n",
" 1000 0.044 0.000 0.079 0.000 {cudf._lib.binops.apply_op}\n",
" 1000 0.005 0.000 0.078 0.000 rmm.py:31(_array_helper)\n",
" 1000 0.003 0.000 0.066 0.000 dataframe.py:433(__setitem__)\n",
" 1000 0.025 0.000 0.059 0.000 dataframe.py:1564(insert)\n",
" 1001 0.001 0.000 0.052 0.000 utils.py:673(__call__)\n",
" 1000 0.000 0.000 0.050 0.000 rmm.py:277(finalizer)\n",
" 1000 0.049 0.000 0.050 0.000 {rmm._lib.lib.rmm_free}\n",
" 5000 0.020 0.000 0.046 0.000 dtypes.py:71(is_categorical_dtype)\n",
" 1001 0.006 0.000 0.035 0.000 devicearray.py:65(__init__)\n",
" 1000 0.004 0.000 0.034 0.000 dataframe.py:1531(_prepare_series_for_add)\n",
" 1000 0.001 0.000 0.032 0.000 devices.py:209(get_context)\n",
" 1002 0.001 0.000 0.031 0.000 devices.py:131(get_or_create_context)\n",
" 23010 0.017 0.000 0.031 0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)\n",
" 1000 0.005 0.000 0.029 0.000 column.py:1089(build_column)\n",
" 1002 0.008 0.000 0.029 0.000 devices.py:145(_get_or_create_context_uncached)\n",
" 3000 0.005 0.000 0.027 0.000 numerical.py:28(__init__)\n",
" 1001 0.005 0.000 0.027 0.000 dummyarray.py:149(from_desc)\n",
" 127256 0.017 0.000 0.022 0.000 {built-in method builtins.isinstance}\n",
" 3000 0.006 0.000 0.022 0.000 column.py:856(__init__)\n",
" 1000 0.003 0.000 0.022 0.000 numerical.py:59(replace)\n",
" 1002 0.006 0.000 0.022 0.000 dummyarray.py:159(__init__)\n",
" 1000 0.003 0.000 0.019 0.000 column.py:449(replace)\n",
" 1004 0.006 0.000 0.018 0.000 driver.py:379(__enter__)\n",
" 62053 0.015 0.000 0.015 0.000 {built-in method builtins.hasattr}\n",
" 1000 0.001 0.000 0.015 0.000 series.py:941(_normalize_binop_value)\n",
" 1000 0.007 0.000 0.013 0.000 numerical.py:120(normalize_binop_value)\n",
" 1000 0.002 0.000 0.013 0.000 dataframe.py:1473(_sanitize_values)\n",
" 3000 0.004 0.000 0.013 0.000 column.py:177(__init__)\n",
" 7000 0.006 0.000 0.012 0.000 numeric.py:1782(isscalar)\n",
" 4000 0.009 0.000 0.012 0.000 series.py:90(__init__)\n",
" 2000 0.012 0.000 0.012 0.000 {cudf._lib.nvtx.nvtx_range_push}\n",
"22021/21020 0.006 0.000 0.011 0.000 {built-in method builtins.len}\n",
" 1000 0.002 0.000 0.010 0.000 dataframe.py:1437(_sanitize_columns)\n",
" 1000 0.002 0.000 0.009 0.000 column.py:462(view)\n",
" 1002 0.003 0.000 0.009 0.000 dummyarray.py:193(_compute_extent)\n",
" 2005 0.007 0.000 0.009 0.000 driver.py:290(safe_cuda_api_call)\n",
" 10012 0.006 0.000 0.008 0.000 common.py:1981(pandas_dtype)\n",
" 2000 0.003 0.000 0.007 0.000 dtypes.py:160(is_list_like)\n",
" 1000 0.004 0.000 0.007 0.000 buffer.py:30(__init__)\n",
" 1000 0.001 0.000 0.006 0.000 series.py:238(_copy_construct)\n",
" 1001 0.002 0.000 0.006 0.000 driver.py:1244(__init__)\n",
" 2000 0.006 0.000 0.006 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
" 1000 0.003 0.000 0.006 0.000 column.py:893(_replace_defaults)\n",
" 1000 0.002 0.000 0.005 0.000 api.py:202(_prepare_shape_strides_dtype)\n",
" 2004 0.002 0.000 0.005 0.000 dummyarray.py:109(compute_index)\n",
" 6013 0.002 0.000 0.005 0.000 abc.py:137(__instancecheck__)\n",
" 1002 0.003 0.000 0.004 0.000 dummyarray.py:169(_compute_layout)\n",
" 3000 0.002 0.000 0.004 0.000 column.py:218(_update_null_count)\n",
" 3000 0.002 0.000 0.004 0.000 buffer.py:189(is_contiguous)\n",
" 1000 0.001 0.000 0.004 0.000 <__array_function__ internals>:2(min_scalar_type)\n",
" 1000 0.001 0.000 0.004 0.000 <__array_function__ internals>:2(result_type)\n",
" 2000 0.003 0.000 0.004 0.000 column.py:423(_replace_defaults)\n",
" 1001 0.003 0.000 0.004 0.000 utils.py:655(__init__)\n",
" 1000 0.002 0.000 0.004 0.000 utils.py:149(get_result_name)\n",
" 1000 0.003 0.000 0.003 0.000 index.py:458(__contains__)\n",
" 6013 0.003 0.000 0.003 0.000 {built-in method _abc._abc_instancecheck}\n",
" 1000 0.003 0.000 0.003 0.000 api.py:215(_fill_stride_by_order)\n",
" 1000 0.001 0.000 0.003 0.000 driver.py:1827(memory_size_from_info)\n",
" 2004 0.001 0.000 0.003 0.000 {built-in method builtins.sum}\n",
" 3000 0.002 0.000 0.003 0.000 devicearray.py:439(is_c_contiguous)\n",
" 1000 0.001 0.000 0.003 0.000 dtypes.py:125(is_scalar)\n",
" 3000 0.002 0.000 0.003 0.000 index.py:491(__len__)\n",
" 4001 0.002 0.000 0.002 0.000 devicearray.py:172(device_ctypes_pointer)\n",
" 1000 0.001 0.000 0.002 0.000 cudautils.py:27(to_device)\n",
"5158/5157 0.002 0.000 0.002 0.000 {built-in method builtins.getattr}\n",
" 9000 0.002 0.000 0.002 0.000 column.py:309(__len__)\n",
" 2005 0.001 0.000 0.002 0.000 __init__.py:1356(debug)\n",
" 4008 0.001 0.000 0.002 0.000 dummyarray.py:110(<genexpr>)\n",
" 4005 0.002 0.000 0.002 0.000 {built-in method builtins.max}\n",
" 1000 0.001 0.000 0.001 0.000 {built-in method numba.mviewbuf.memoryview_get_extents_info}\n",
" 1000 0.001 0.000 0.001 0.000 series.py:235(_copy_construct_defaults)\n",
" 1000 0.001 0.000 0.001 0.000 rmm.py:225(auto_device)\n",
" 4002 0.001 0.000 0.001 0.000 {method 'update' of 'dict' objects}\n",
" 9000 0.001 0.000 0.001 0.000 column.py:238(name)\n",
" 2003 0.001 0.000 0.001 0.000 {built-in method _functools.reduce}\n",
" 8000 0.001 0.000 0.001 0.000 column.py:862(dtype)\n",
" 1004 0.001 0.000 0.001 0.000 driver.py:405(__exit__)\n",
" 2004 0.001 0.000 0.001 0.000 dummyarray.py:181(is_contig)\n",
" 1002 0.000 0.000 0.001 0.000 devices.py:77(__getattr__)\n",
" 1004 0.000 0.000 0.001 0.000 devices.py:178(_get_attached_context)\n",
" 4001 0.001 0.000 0.001 0.000 {method 'pop' of 'dict' objects}\n",
" 3001 0.001 0.000 0.001 0.000 dummyarray.py:228(is_c_contig)\n",
" 2005 0.001 0.000 0.001 0.000 driver.py:318(_check_error)\n",
" 2 0.000 0.000 0.001 0.000 dataframe.py:1135(columns)\n",
" 1000 0.000 0.000 0.001 0.000 series.py:388(__len__)\n",
" 4/2 0.000 0.000 0.001 0.000 base.py:253(__new__)\n",
" 2005 0.001 0.000 0.001 0.000 __init__.py:1614(isEnabledFor)\n",
" 1002 0.000 0.000 0.001 0.000 <string>:1(__new__)\n",
" 2000 0.001 0.000 0.001 0.000 {cudf._lib.nvtx.nvtx_range_pop}\n",
" 3009 0.001 0.000 0.001 0.000 {built-in method builtins.next}\n",
" 1001 0.001 0.000 0.001 0.000 driver.py:1773(device_memory_size)\n",
" 1 0.000 0.000 0.001 0.001 series.py:1363(to_pandas)\n",
" 1 0.000 0.000 0.001 0.001 numerical.py:186(to_pandas)\n",
" 4001 0.001 0.000 0.001 0.000 series.py:210(name)\n",
" 1000 0.001 0.000 0.001 0.000 rmm.py:270(_make_finalizer)\n",
" 3000 0.001 0.000 0.001 0.000 dataframe.py:523(__len__)\n",
" 1000 0.001 0.000 0.001 0.000 {built-in method numpy.promote_types}\n",
" 1002 0.001 0.000 0.001 0.000 dummyarray.py:45(__init__)\n",
" 2004 0.001 0.000 0.001 0.000 dummyarray.py:81(get_offset)\n",
" 1000 0.001 0.000 0.001 0.000 column.py:409(has_null_mask)\n",
" 1001 0.000 0.000 0.001 0.000 driver.py:1857(is_device_memory)\n",
" 2004 0.001 0.000 0.001 0.000 {built-in method _ctypes.byref}\n",
" 4001 0.001 0.000 0.001 0.000 driver.py:1308(device_ctypes_pointer)\n",
" 3001 0.000 0.000 0.000 0.000 series.py:1379(index)\n",
" 1 0.000 0.000 0.000 0.000 column.py:381(to_array)\n",
" 4002 0.000 0.000 0.000 0.000 column.py:404(null_count)\n",
" 1000 0.000 0.000 0.000 0.000 series.py:2644(_align_indices)\n",
" 1 0.000 0.000 0.000 0.000 buffer.py:165(to_array)\n",
" 2 0.000 0.000 0.000 0.000 devices.py:222(_require_cuda_context)\n",
" 1004 0.000 0.000 0.000 0.000 driver.py:364(get_active_context)\n",
" 1002 0.000 0.000 0.000 0.000 devices.py:37(__getitem__)\n",
" 1002 0.000 0.000 0.000 0.000 dummyarray.py:195(<listcomp>)\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:162(<genexpr>)\n",
" 1002 0.000 0.000 0.000 0.000 {built-in method builtins.delattr}\n",
" 1 0.000 0.000 0.000 0.000 series.py:1463(to_dict)\n",
" 1007 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x565338101240}\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:714(prepare_for_use)\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:516(get_primary_context)\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:105(is_contiguous)\n",
" 1008 0.000 0.000 0.000 0.000 {built-in method builtins.iter}\n",
" 2001 0.000 0.000 0.000 0.000 column.py:316(data)\n",
" 2000 0.000 0.000 0.000 0.000 column.py:322(mask)\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:163(<genexpr>)\n",
" 1000 0.000 0.000 0.000 0.000 buffer.py:203(__init__)\n",
" 1000 0.000 0.000 0.000 0.000 buffer.py:211(ndim)\n",
" 1000 0.000 0.000 0.000 0.000 devicearray.py:451(__len__)\n",
" 1001 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}\n",
" 1 0.000 0.000 0.000 0.000 base.py:3752(_try_convert_to_int_index)\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:409(__bool__)\n",
" 4 0.000 0.000 0.000 0.000 common.py:222(asarray_tuplesafe)\n",
" 1000 0.000 0.000 0.000 0.000 {method 'keys' of 'collections.OrderedDict' objects}\n",
" 1000 0.000 0.000 0.000 0.000 multiarray.py:584(min_scalar_type)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:495(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:504(_do_getitem)\n",
" 1000 0.000 0.000 0.000 0.000 dataframe.py:1187(index)\n",
" 1 0.000 0.000 0.000 0.000 series.py:152(__init__)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:111(ensure_context)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:107(__enter__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:211(copy_to_host)\n",
" 3 0.000 0.000 0.000 0.000 base.py:1117(__iter__)\n",
" 23 0.000 0.000 0.000 0.000 base.py:75(is_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:159(__init__)\n",
" 4 0.000 0.000 0.000 0.000 __init__.py:221(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1903(device_to_host)\n",
" 1000 0.000 0.000 0.000 0.000 multiarray.py:635(result_type)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1446(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 managers.py:1443(__init__)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:204(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3080(make_block)\n",
" 23 0.000 0.000 0.000 0.000 common.py:1845(_is_dtype_type)\n",
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype}\n",
" 2 0.000 0.000 0.000 0.000 cast.py:1193(construct_1d_object_array_from_listlike)\n",
" 2 0.000 0.000 0.000 0.000 index.py:993(as_index)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1078(is_datetime64_any_dtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3034(get_block_type)\n",
" 9 0.000 0.000 0.000 0.000 common.py:536(is_interval_dtype)\n",
" 3 0.000 0.000 0.000 0.000 common.py:702(is_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 index.py:622(to_pandas)\n",
" 7 0.000 0.000 0.000 0.000 common.py:403(is_datetime64_dtype)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:973(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:34(__new__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:470(copy)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:537(sanitize_array)\n",
" 1 0.000 0.000 0.000 0.000 range.py:69(__new__)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:66(copy)\n",
" 5 0.000 0.000 0.000 0.000 common.py:503(is_period_dtype)\n",
" 9 0.000 0.000 0.000 0.000 common.py:572(is_categorical_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dataframe.py:1311(set_index)\n",
" 90 0.000 0.000 0.000 0.000 generic.py:7(_check)\n",
" 8 0.000 0.000 0.000 0.000 common.py:434(is_datetime64tz_dtype)\n",
" 14 0.000 0.000 0.000 0.000 common.py:1702(is_extension_array_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1282(view)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:827(is_dtype)\n",
" 11 0.000 0.000 0.000 0.000 dataframe.py:305(__setattr__)\n",
" 4 0.000 0.000 0.000 0.000 series.py:476(_values)\n",
" 7 0.000 0.000 0.000 0.000 common.py:472(is_timedelta64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
" 3 0.000 0.000 0.000 0.000 _dtype.py:319(_name_get)\n",
" 1 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
" 2 0.000 0.000 0.000 0.000 _asarray.py:16(asarray)\n",
" 2 0.000 0.000 0.000 0.000 base.py:504(_simple_new)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_all)\n",
" 59 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
" 1 0.000 0.000 0.000 0.000 construction.py:684(_try_cast)\n",
" 7 0.000 0.000 0.000 0.000 inference.py:253(is_list_like)\n",
" 1 0.000 0.000 0.000 0.000 range.py:136(_simple_new)\n",
" 8 0.000 0.000 0.000 0.000 base.py:3632(_values)\n",
" 1 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
" 16/10 0.000 0.000 0.000 0.000 dataframe.py:332(__getattr__)\n",
" 1 0.000 0.000 0.000 0.000 cast.py:832(maybe_castable)\n",
" 14 0.000 0.000 0.000 0.000 dtypes.py:68(find)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:929(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1578(is_bool_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:219(<listcomp>)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1369(__init__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1802(host_pointer)\n",
" 1 0.000 0.000 0.000 0.000 range.py:176(_data)\n",
" 1 0.000 0.000 0.000 0.000 common.py:262(is_categorical)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:116(__exit__)\n",
" 2 0.000 0.000 0.000 0.000 generic.py:5069(__setattr__)\n",
" 3 0.000 0.000 0.000 0.000 numerictypes.py:365(issubdtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:53(__getitem__)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:268(_reconstruct)\n",
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
" 2 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:786(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1844(device_pointer)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:78(__init__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:350(standardize_mapping)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1849(device_ctypes_pointer)\n",
" 5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:416(parent)\n",
" 1 0.000 0.000 0.000 0.000 arrays.py:7(extract_array)\n",
" 1 0.000 0.000 0.000 0.000 range.py:165(_validate_dtype)\n",
" 2 0.000 0.000 0.000 0.000 common.py:923(is_signed_integer_dtype)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1809(_get_dtype)\n",
" 2 0.000 0.000 0.000 0.000 {method '__reduce_ex__' of 'object' objects}\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1549(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 common.py:160(is_sparse)\n",
" 3 0.000 0.000 0.000 0.000 common.py:980(is_unsigned_integer_dtype)\n",
" 6 0.000 0.000 0.000 0.000 numerictypes.py:293(issubclass_)\n",
" 2 0.000 0.000 0.000 0.000 index.py:439(__init__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:1039(_setdefault_name)\n",
" 1 0.000 0.000 0.000 0.000 column.py:642(to_dense_buffer)\n",
" 18 0.000 0.000 0.000 0.000 common.py:119(<lambda>)\n",
" 2 0.000 0.000 0.000 0.000 copyreg.py:87(__newobj__)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:237(helper)\n",
" 2 0.000 0.000 0.000 0.000 series.py:392(name)\n",
" 1 0.000 0.000 0.000 0.000 common.py:1028(is_int64_dtype)\n",
" 2 0.000 0.000 0.000 0.000 _internal.py:865(npy_ctypes_check)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:81(__init__)\n",
" 1 0.000 0.000 0.000 0.000 series.py:354(_set_axis)\n",
" 3 0.000 0.000 0.000 0.000 range.py:510(__len__)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:127(__init__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:633(_reset_identity)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:452(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1545(is_float_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numba.mviewbuf.memoryview_get_buffer}\n",
" 1 0.000 0.000 0.000 0.000 index.py:568(dtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:199(mgr_locs)\n",
" 2 0.000 0.000 0.000 0.000 range.py:89(ensure_int)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:672(construct_from_string)\n",
" 18 0.000 0.000 0.000 0.000 common.py:117(classes)\n",
" 1 0.000 0.000 0.000 0.000 common.py:131(is_object_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:746(is_dtype_equal)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:181(_set_attached_context)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1393(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1787(_is_datetime_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dummyarray.py:236(iter_contiguous_extent)\n",
" 1 0.000 0.000 0.000 0.000 abc.py:141(__subclasscheck__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
" 5 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 generic.py:5053(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 base.py:652(__len__)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3806(_coerce_to_ndarray)\n",
" 2 0.000 0.000 0.000 0.000 inference.py:121(is_iterator)\n",
" 5 0.000 0.000 0.000 0.000 common.py:122(classes_and_not_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1794(_workaround_for_datetime)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1868(require_device_memory)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _weakref.proxy}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
" 1 0.000 0.000 0.000 0.000 {method 'indices' of 'slice' objects}\n",
" 4 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
" 3 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 index.py:268(rename)\n",
" 1 0.000 0.000 0.000 0.000 series.py:382(_set_subtyp)\n",
" 2 0.000 0.000 0.000 0.000 series.py:399(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1488(_block)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:89(_check_ndim)\n",
" 1 0.000 0.000 0.000 0.000 base.py:5318(ensure_index)\n",
" 2 0.000 0.000 0.000 0.000 base.py:475(<genexpr>)\n",
" 5 0.000 0.000 0.000 0.000 common.py:127(<lambda>)\n",
" 3 0.000 0.000 0.000 0.000 driver.py:1257(owner)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1380(deref)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:234(<genexpr>)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:220(<listcomp>)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:262(reshape)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:407(_compute_size)\n",
" 1 0.000 0.000 0.000 0.000 inspect.py:72(isclass)\n",
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects}\n",
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.abs}\n",
" 2 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:232(_add_empty_columns)\n",
" 4 0.000 0.000 0.000 0.000 blocks.py:165(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:195(mgr_locs)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:113(is_all_dates)\n",
" 1 0.000 0.000 0.000 0.000 common.py:175(_all_none)\n",
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:160(_default_stream)\n",
"\n",
"\n"
]
}
],
"source": [
"def f():\n",
" r = g_df + g_sr \n",
"cProfile.run('f()', sort='cumtime')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1m Rows, 3k Columns"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"host_df, host_sr, g_df, g_sr = generate_data(1e6, 1e3)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAIICAYAAABjKsNyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3df7DddX3n8dd7E5ARf0OKPwINs7WaoPzQK9bRVarWImWkOtjCSIuKTYu1sx3b2eLaqau1O+vWqrvV6rLKqh20KpWWsSBScApM/ZW4GAlIpZZqKEIMFmSF1ch7/8iBvcQbEnIu937uzeMxc+d+f3zO+X5O5jvo857v+Z7q7gAAAMBi+zeLPQEAAABIBCoAAACDEKgAAAAMQaACAAAwBIEKAADAEAQqAAAAQ1i52BOYy8EHH9xr1qxZ7GkAAAAwzzZu3Pid7l41174hA3XNmjXZsGHDYk8DAACAeVZV/7yrfS7xBQAAYAgCFQAAgCEIVAAAAIYw5GdQ5/LDH/4wW7ZsyV133bXYUxnOAQcckNWrV2e//fZb7KkAAADstSUTqFu2bMnDH/7wrFmzJlW12NMZRndn27Zt2bJlSw4//PDFng4AAMBeWzKX+N5111056KCDxOlOqioHHXSQd5YBAIAlb8kEahJxugv+XQAAgOVgSQXqcnTcccf5zlcAAIAsoc+g7my+3zTsnt/nAwAA4IHxDuoeuuGGG/LkJz85r3jFK7J27dqcfPLJ+f73v5+3vOUtecYznpGnPOUpWb9+fXpSuscdd1x+7/d+L8cee2x++qd/OldccUWS5M4778wpp5yStWvX5qUvfWnuvPPOe49x5plnZmZmJkcccUTe9KY33bv9rLPOyrp163LkkUfmd3/3dxf2hQMAACwQgfoAXHfddXnta1+ba6+9No94xCPyZ3/2Z3nd616XL33pS7n66qtz55135lOf+tS947dv354vfvGLede73pU3v/nNSZL3vve9eehDH5prr702b37zm7Nx48Z7x//RH/1RNmzYkE2bNuXv/u7vsmnTpmzbti3nn39+Nm/enE2bNuX3f//3F/x1AwAALASB+gAceuihefazn50kOe2003LllVfms5/9bJ75zGfmqU99ai677LJs3rz53vEve9nLkiRPf/rTc8MNNyRJLr/88px22mlJkiOPPDJHHnnkveM//vGP52lPe1qOOeaYbN68Oddcc00e+chH5oADDsgZZ5yRT37yk3noQx+6QK8WAABgYQnUB2Dnu+VWVV772tfmvPPOy1e/+tX82q/92n2+7uUhD3lIkmTFihXZvn37/T73P/3TP+Xtb397Lr300mzatCm/8Au/kLvuuisrV67MF7/4xZx88sn51Kc+leOPP37+XxgAAMAABOoD8M1vfjOf+9znkiQf+chH8pznPCdJcvDBB+eOO+7Ieeedt9vneO5zn5uPfOQjSZKrr746mzZtSpLcfvvtOfDAA/PIRz4yN998cy666KIkyR133JHbbrstJ5xwQt75znfmK1/5yoPx0gAAABbdkr2L72J40pOelPe85z159atfnXXr1uXMM8/Md7/73TzlKU/JYx/72DzjGc/Y7XOceeaZedWrXpW1a9dm7dq1efrTn54kOeqoo3LMMcfkyU9+8n0uJf7e976Xk046KXfddVe6O+94xzse1NcIAACwWKp38/0qVXVokg8nOSRJJzm7u/9bVT0myceSrElyQ5Jf6u7vzvH405Pcc2eft3b3h3Y3qZmZmd75u0GvvfbarF27dncPfdDccMMNOfHEE3P11Vcv2hzuz2L/+wAAAOyJqtrY3TNz7duTS3y3J/md7l6X5GeS/GZVrUtyVpJLu/uJSS6drO984MckeVOSZyY5NsmbqurRe/cyAAAAWM52G6jdfVN3f3my/L0k1yZ5QpKTktzzbuiHkvziHA//+SSXdPetk3dXL0myJO/ys2bNmmHfPQUAAFgOHtBNkqpqTZJjknwhySHdfdNk17ez4xLgnT0hybdmrW+ZbJvruddX1Yaq2rB169YHMi0AAACWgT0O1Kp6WJK/TPLb3X377H2944Os9/9h1t3o7rO7e6a7Z1atWjXNUwEAALAE7VGgVtV+2RGn53b3Jyebb66qx032Py7JLXM89MYkh85aXz3ZBgAAAPex26+ZqapK8oEk13b37O84uSDJ6Un+y+T3X8/x8IuT/OdZN0Z6UZI3TDVjAFhmqhZ7BgAsJ7v5opah7ck7qM9O8itJnl9VV01+TsiOMP25qvp6khdO1lNVM1X1/iTp7luT/GGSL01+3jLZtk955StfmfPOOy9JcsUVV+SII47I0UcfnTvvvHORZwYAADCO3b6D2t1XJtnV33ZfMMf4DUleM2v9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\n",
"text/plain": [
"<Figure size 1152x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_impls()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 488329 function calls (487319 primitive calls) in 0.405 seconds\n",
"\n",
" Ordered by: cumulative time\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 0.000 0.000 0.405 0.405 {built-in method builtins.exec}\n",
" 1 0.001 0.001 0.405 0.405 <string>:1(<module>)\n",
" 1 0.000 0.000 0.397 0.397 <ipython-input-5-94b44f2c14d2>:1(f)\n",
" 1 0.000 0.000 0.397 0.397 dataframe.py:834(__add__)\n",
" 1 0.015 0.015 0.397 0.397 dataframe.py:755(_apply_op)\n",
" 1000 0.001 0.000 0.314 0.000 dataframe.py:759(op)\n",
" 1000 0.001 0.000 0.313 0.000 series.py:667(__add__)\n",
" 1000 0.006 0.000 0.312 0.000 series.py:588(_binaryop)\n",
" 1000 0.006 0.000 0.274 0.000 numerical.py:79(binary_operator)\n",
" 1000 0.008 0.000 0.263 0.000 numerical.py:429(_numeric_column_binop)\n",
" 1000 0.005 0.000 0.145 0.000 column.py:1055(column_empty)\n",
" 1000 0.004 0.000 0.092 0.000 rmm.py:167(device_array)\n",
" 1000 0.005 0.000 0.073 0.000 rmm.py:31(_array_helper)\n",
" 1000 0.039 0.000 0.072 0.000 {cudf._lib.binops.apply_op}\n",
" 1000 0.003 0.000 0.063 0.000 dataframe.py:433(__setitem__)\n",
" 1000 0.023 0.000 0.056 0.000 dataframe.py:1564(insert)\n",
" 5000 0.019 0.000 0.044 0.000 dtypes.py:71(is_categorical_dtype)\n",
" 1001 0.006 0.000 0.033 0.000 devicearray.py:65(__init__)\n",
" 1000 0.004 0.000 0.033 0.000 dataframe.py:1531(_prepare_series_for_add)\n",
" 1000 0.001 0.000 0.029 0.000 devices.py:209(get_context)\n",
" 1002 0.001 0.000 0.029 0.000 devices.py:131(get_or_create_context)\n",
" 23010 0.015 0.000 0.029 0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)\n",
" 1000 0.005 0.000 0.028 0.000 column.py:1089(build_column)\n",
" 1002 0.007 0.000 0.027 0.000 devices.py:145(_get_or_create_context_uncached)\n",
" 3000 0.005 0.000 0.026 0.000 numerical.py:28(__init__)\n",
" 1001 0.005 0.000 0.026 0.000 dummyarray.py:149(from_desc)\n",
" 127256 0.017 0.000 0.022 0.000 {built-in method builtins.isinstance}\n",
" 3000 0.006 0.000 0.021 0.000 column.py:856(__init__)\n",
" 1002 0.006 0.000 0.021 0.000 dummyarray.py:159(__init__)\n",
" 1000 0.002 0.000 0.020 0.000 numerical.py:59(replace)\n",
" 1000 0.003 0.000 0.018 0.000 column.py:449(replace)\n",
" 1004 0.006 0.000 0.016 0.000 driver.py:379(__enter__)\n",
" 62053 0.014 0.000 0.014 0.000 {built-in method builtins.hasattr}\n",
" 1000 0.001 0.000 0.013 0.000 series.py:941(_normalize_binop_value)\n",
" 1000 0.002 0.000 0.013 0.000 dataframe.py:1473(_sanitize_values)\n",
" 3000 0.004 0.000 0.012 0.000 column.py:177(__init__)\n",
" 4000 0.009 0.000 0.012 0.000 series.py:90(__init__)\n",
" 1000 0.007 0.000 0.012 0.000 numerical.py:120(normalize_binop_value)\n",
" 7000 0.006 0.000 0.011 0.000 numeric.py:1782(isscalar)\n",
"22021/21020 0.006 0.000 0.011 0.000 {built-in method builtins.len}\n",
" 1000 0.001 0.000 0.010 0.000 dataframe.py:1437(_sanitize_columns)\n",
" 2000 0.010 0.000 0.010 0.000 {cudf._lib.nvtx.nvtx_range_push}\n",
" 1000 0.002 0.000 0.010 0.000 column.py:462(view)\n",
" 1002 0.003 0.000 0.009 0.000 dummyarray.py:193(_compute_extent)\n",
" 2005 0.006 0.000 0.009 0.000 driver.py:290(safe_cuda_api_call)\n",
" 10012 0.006 0.000 0.008 0.000 common.py:1981(pandas_dtype)\n",
" 1000 0.003 0.000 0.007 0.000 buffer.py:30(__init__)\n",
" 2000 0.002 0.000 0.007 0.000 dtypes.py:160(is_list_like)\n",
" 1000 0.006 0.000 0.007 0.000 {rmm._lib.lib.rmm_alloc}\n",
" 1001 0.001 0.000 0.006 0.000 utils.py:673(__call__)\n",
" 1000 0.001 0.000 0.006 0.000 series.py:238(_copy_construct)\n",
" 1000 0.000 0.000 0.006 0.000 rmm.py:277(finalizer)\n",
" 1001 0.002 0.000 0.006 0.000 driver.py:1244(__init__)\n",
" 1000 0.003 0.000 0.005 0.000 column.py:893(_replace_defaults)\n",
" 1000 0.005 0.000 0.005 0.000 {rmm._lib.lib.rmm_free}\n",
" 2000 0.005 0.000 0.005 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
" 1000 0.002 0.000 0.005 0.000 api.py:202(_prepare_shape_strides_dtype)\n",
" 6013 0.002 0.000 0.005 0.000 abc.py:137(__instancecheck__)\n",
" 2004 0.002 0.000 0.005 0.000 dummyarray.py:109(compute_index)\n",
" 1002 0.003 0.000 0.004 0.000 dummyarray.py:169(_compute_layout)\n",
" 3000 0.002 0.000 0.004 0.000 buffer.py:189(is_contiguous)\n",
" 3000 0.002 0.000 0.004 0.000 column.py:218(_update_null_count)\n",
" 2000 0.003 0.000 0.004 0.000 column.py:423(_replace_defaults)\n",
" 1000 0.001 0.000 0.004 0.000 <__array_function__ internals>:2(result_type)\n",
" 1000 0.001 0.000 0.004 0.000 <__array_function__ internals>:2(min_scalar_type)\n",
" 1000 0.002 0.000 0.003 0.000 utils.py:149(get_result_name)\n",
" 1001 0.003 0.000 0.003 0.000 utils.py:655(__init__)\n",
" 1000 0.003 0.000 0.003 0.000 index.py:458(__contains__)\n",
" 6013 0.003 0.000 0.003 0.000 {built-in method _abc._abc_instancecheck}\n",
" 1000 0.003 0.000 0.003 0.000 api.py:215(_fill_stride_by_order)\n",
" 2004 0.001 0.000 0.003 0.000 {built-in method builtins.sum}\n",
" 1000 0.001 0.000 0.003 0.000 driver.py:1827(memory_size_from_info)\n",
" 1000 0.001 0.000 0.003 0.000 dtypes.py:125(is_scalar)\n",
" 3000 0.002 0.000 0.003 0.000 devicearray.py:439(is_c_contiguous)\n",
" 3000 0.001 0.000 0.002 0.000 index.py:491(__len__)\n",
" 4001 0.002 0.000 0.002 0.000 devicearray.py:172(device_ctypes_pointer)\n",
"5158/5157 0.002 0.000 0.002 0.000 {built-in method builtins.getattr}\n",
" 1000 0.001 0.000 0.002 0.000 cudautils.py:27(to_device)\n",
" 9000 0.002 0.000 0.002 0.000 column.py:309(__len__)\n",
" 4008 0.001 0.000 0.002 0.000 dummyarray.py:110(<genexpr>)\n",
" 2005 0.001 0.000 0.002 0.000 __init__.py:1356(debug)\n",
" 4005 0.001 0.000 0.001 0.000 {built-in method builtins.max}\n",
" 1000 0.001 0.000 0.001 0.000 {built-in method numba.mviewbuf.memoryview_get_extents_info}\n",
" 1000 0.001 0.000 0.001 0.000 series.py:235(_copy_construct_defaults)\n",
" 1000 0.001 0.000 0.001 0.000 rmm.py:225(auto_device)\n",
" 1 0.000 0.000 0.001 0.001 series.py:1363(to_pandas)\n",
" 4002 0.001 0.000 0.001 0.000 {method 'update' of 'dict' objects}\n",
" 1 0.000 0.000 0.001 0.001 numerical.py:186(to_pandas)\n",
" 3009 0.001 0.000 0.001 0.000 {built-in method builtins.next}\n",
" 9000 0.001 0.000 0.001 0.000 column.py:238(name)\n",
" 2004 0.001 0.000 0.001 0.000 dummyarray.py:181(is_contig)\n",
" 1004 0.001 0.000 0.001 0.000 driver.py:405(__exit__)\n",
" 2003 0.001 0.000 0.001 0.000 {built-in method _functools.reduce}\n",
" 8000 0.001 0.000 0.001 0.000 column.py:862(dtype)\n",
" 1002 0.000 0.000 0.001 0.000 devices.py:77(__getattr__)\n",
" 1 0.000 0.000 0.001 0.001 column.py:381(to_array)\n",
" 1 0.000 0.000 0.001 0.001 buffer.py:165(to_array)\n",
" 3001 0.001 0.000 0.001 0.000 dummyarray.py:228(is_c_contig)\n",
" 2 0.000 0.000 0.001 0.000 devices.py:222(_require_cuda_context)\n",
" 1004 0.000 0.000 0.001 0.000 devices.py:178(_get_attached_context)\n",
" 1000 0.000 0.000 0.001 0.000 series.py:388(__len__)\n",
" 2005 0.001 0.000 0.001 0.000 driver.py:318(_check_error)\n",
" 1002 0.000 0.000 0.001 0.000 <string>:1(__new__)\n",
" 2 0.000 0.000 0.001 0.000 dataframe.py:1135(columns)\n",
" 4001 0.001 0.000 0.001 0.000 {method 'pop' of 'dict' objects}\n",
" 4/2 0.000 0.000 0.001 0.000 base.py:253(__new__)\n",
" 1001 0.000 0.000 0.001 0.000 driver.py:1773(device_memory_size)\n",
" 2005 0.001 0.000 0.001 0.000 __init__.py:1614(isEnabledFor)\n",
" 2004 0.001 0.000 0.001 0.000 dummyarray.py:81(get_offset)\n",
" 2000 0.001 0.000 0.001 0.000 {cudf._lib.nvtx.nvtx_range_pop}\n",
" 4001 0.001 0.000 0.001 0.000 series.py:210(name)\n",
" 1001 0.000 0.000 0.001 0.000 driver.py:1857(is_device_memory)\n",
" 1000 0.001 0.000 0.001 0.000 column.py:409(has_null_mask)\n",
" 4 0.000 0.000 0.001 0.000 devices.py:111(ensure_context)\n",
" 2 0.000 0.000 0.001 0.000 contextlib.py:107(__enter__)\n",
" 3000 0.001 0.000 0.001 0.000 dataframe.py:523(__len__)\n",
" 4001 0.001 0.000 0.001 0.000 driver.py:1308(device_ctypes_pointer)\n",
" 4002 0.001 0.000 0.001 0.000 column.py:404(null_count)\n",
" 1000 0.001 0.000 0.001 0.000 {built-in method numpy.promote_types}\n",
" 2004 0.001 0.000 0.001 0.000 {built-in method _ctypes.byref}\n",
" 1000 0.000 0.000 0.000 0.000 rmm.py:270(_make_finalizer)\n",
" 1002 0.000 0.000 0.000 0.000 dummyarray.py:45(__init__)\n",
" 1000 0.000 0.000 0.000 0.000 series.py:2644(_align_indices)\n",
" 1004 0.000 0.000 0.000 0.000 driver.py:364(get_active_context)\n",
" 1002 0.000 0.000 0.000 0.000 {built-in method builtins.delattr}\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:162(<genexpr>)\n",
" 3001 0.000 0.000 0.000 0.000 series.py:1379(index)\n",
" 1002 0.000 0.000 0.000 0.000 dummyarray.py:195(<listcomp>)\n",
" 1007 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x565338101240}\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:714(prepare_for_use)\n",
" 1002 0.000 0.000 0.000 0.000 devices.py:37(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1463(to_dict)\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:105(is_contiguous)\n",
" 1008 0.000 0.000 0.000 0.000 {built-in method builtins.iter}\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:516(get_primary_context)\n",
" 2000 0.000 0.000 0.000 0.000 column.py:322(mask)\n",
" 2001 0.000 0.000 0.000 0.000 column.py:316(data)\n",
" 1000 0.000 0.000 0.000 0.000 buffer.py:211(ndim)\n",
" 2004 0.000 0.000 0.000 0.000 dummyarray.py:163(<genexpr>)\n",
" 1000 0.000 0.000 0.000 0.000 buffer.py:203(__init__)\n",
" 1000 0.000 0.000 0.000 0.000 devicearray.py:451(__len__)\n",
" 1 0.000 0.000 0.000 0.000 series.py:152(__init__)\n",
" 1001 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}\n",
" 1002 0.000 0.000 0.000 0.000 driver.py:409(__bool__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:211(copy_to_host)\n",
" 1000 0.000 0.000 0.000 0.000 dataframe.py:1187(index)\n",
" 1000 0.000 0.000 0.000 0.000 {method 'keys' of 'collections.OrderedDict' objects}\n",
" 4 0.000 0.000 0.000 0.000 common.py:222(asarray_tuplesafe)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3752(_try_convert_to_int_index)\n",
" 1000 0.000 0.000 0.000 0.000 multiarray.py:584(min_scalar_type)\n",
" 3 0.000 0.000 0.000 0.000 base.py:1117(__iter__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1903(device_to_host)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:495(__getitem__)\n",
" 4 0.000 0.000 0.000 0.000 __init__.py:221(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:504(_do_getitem)\n",
" 1000 0.000 0.000 0.000 0.000 multiarray.py:635(result_type)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1446(iteritems)\n",
" 23 0.000 0.000 0.000 0.000 base.py:75(is_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:159(__init__)\n",
" 1 0.000 0.000 0.000 0.000 managers.py:1443(__init__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3080(make_block)\n",
" 14 0.000 0.000 0.000 0.000 common.py:1702(is_extension_array_dtype)\n",
" 23 0.000 0.000 0.000 0.000 common.py:1845(_is_dtype_type)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3034(get_block_type)\n",
" 2 0.000 0.000 0.000 0.000 cast.py:1193(construct_1d_object_array_from_listlike)\n",
" 9 0.000 0.000 0.000 0.000 common.py:536(is_interval_dtype)\n",
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype}\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:204(__getitem__)\n",
" 8 0.000 0.000 0.000 0.000 base.py:3632(_values)\n",
" 14 0.000 0.000 0.000 0.000 dtypes.py:68(find)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:537(sanitize_array)\n",
" 2 0.000 0.000 0.000 0.000 index.py:993(as_index)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1078(is_datetime64_any_dtype)\n",
" 3 0.000 0.000 0.000 0.000 common.py:702(is_datetimelike)\n",
" 7 0.000 0.000 0.000 0.000 common.py:403(is_datetime64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
" 1 0.000 0.000 0.000 0.000 index.py:622(to_pandas)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:973(is_dtype)\n",
" 90 0.000 0.000 0.000 0.000 generic.py:7(_check)\n",
" 2 0.000 0.000 0.000 0.000 index.py:470(copy)\n",
" 1 0.000 0.000 0.000 0.000 dataframe.py:1311(set_index)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:116(__exit__)\n",
" 8 0.000 0.000 0.000 0.000 common.py:434(is_datetime64tz_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:69(__new__)\n",
" 5 0.000 0.000 0.000 0.000 common.py:503(is_period_dtype)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:66(copy)\n",
" 9 0.000 0.000 0.000 0.000 common.py:572(is_categorical_dtype)\n",
" 11 0.000 0.000 0.000 0.000 dataframe.py:305(__setattr__)\n",
" 7 0.000 0.000 0.000 0.000 common.py:472(is_timedelta64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1802(host_pointer)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:827(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:176(_data)\n",
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
" 3 0.000 0.000 0.000 0.000 _dtype.py:319(_name_get)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:34(__new__)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:684(_try_cast)\n",
" 1 0.000 0.000 0.000 0.000 series.py:354(_set_axis)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
" 2 0.000 0.000 0.000 0.000 base.py:504(_simple_new)\n",
" 1 0.000 0.000 0.000 0.000 cast.py:832(maybe_castable)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1282(view)\n",
" 7 0.000 0.000 0.000 0.000 inference.py:253(is_list_like)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1787(_is_datetime_dtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:78(__init__)\n",
" 59 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
" 16/10 0.000 0.000 0.000 0.000 dataframe.py:332(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 generic.py:5069(__setattr__)\n",
" 2 0.000 0.000 0.000 0.000 _asarray.py:16(asarray)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1578(is_bool_dtype)\n",
" 3 0.000 0.000 0.000 0.000 numerictypes.py:365(issubdtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:219(<listcomp>)\n",
" 1 0.000 0.000 0.000 0.000 range.py:136(_simple_new)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:929(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:268(_reconstruct)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
" 1 0.000 0.000 0.000 0.000 common.py:262(is_categorical)\n",
" 1 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1844(device_pointer)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:53(__getitem__)\n",
" 5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:416(parent)\n",
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_all)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1849(device_ctypes_pointer)\n",
" 4 0.000 0.000 0.000 0.000 series.py:476(_values)\n",
" 1 0.000 0.000 0.000 0.000 common.py:350(standardize_mapping)\n",
" 1 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1369(__init__)\n",
" 1 0.000 0.000 0.000 0.000 arrays.py:7(extract_array)\n",
" 1 0.000 0.000 0.000 0.000 common.py:160(is_sparse)\n",
" 3 0.000 0.000 0.000 0.000 common.py:980(is_unsigned_integer_dtype)\n",
" 6 0.000 0.000 0.000 0.000 numerictypes.py:293(issubclass_)\n",
" 2 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 range.py:165(_validate_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:786(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 copyreg.py:87(__newobj__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:439(__init__)\n",
" 2 0.000 0.000 0.000 0.000 index.py:1039(_setdefault_name)\n",
" 2 0.000 0.000 0.000 0.000 series.py:392(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1549(internal_values)\n",
" 18 0.000 0.000 0.000 0.000 common.py:119(<lambda>)\n",
" 18 0.000 0.000 0.000 0.000 common.py:117(classes)\n",
" 1 0.000 0.000 0.000 0.000 common.py:131(is_object_dtype)\n",
" 2 0.000 0.000 0.000 0.000 common.py:923(is_signed_integer_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:1028(is_int64_dtype)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1809(_get_dtype)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:237(helper)\n",
" 3 0.000 0.000 0.000 0.000 range.py:510(__len__)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:127(__init__)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:81(__init__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
" 2 0.000 0.000 0.000 0.000 {method '__reduce_ex__' of 'object' objects}\n",
" 1 0.000 0.000 0.000 0.000 column.py:642(to_dense_buffer)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:199(mgr_locs)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:452(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 common.py:746(is_dtype_equal)\n",
" 2 0.000 0.000 0.000 0.000 _internal.py:865(npy_ctypes_check)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:5053(__getattr__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:633(_reset_identity)\n",
" 2 0.000 0.000 0.000 0.000 inference.py:121(is_iterator)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1545(is_float_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numba.mviewbuf.memoryview_get_buffer}\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1393(__getattr__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1868(require_device_memory)\n",
" 1 0.000 0.000 0.000 0.000 abc.py:141(__subclasscheck__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
" 5 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
" 3 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 index.py:568(dtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:195(mgr_locs)\n",
" 2 0.000 0.000 0.000 0.000 range.py:89(ensure_int)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:89(_check_ndim)\n",
" 1 0.000 0.000 0.000 0.000 base.py:5318(ensure_index)\n",
" 2 0.000 0.000 0.000 0.000 base.py:475(<genexpr>)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:672(construct_from_string)\n",
" 5 0.000 0.000 0.000 0.000 common.py:127(<lambda>)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:181(_set_attached_context)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1380(deref)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:234(<genexpr>)\n",
" 2 0.000 0.000 0.000 0.000 dummyarray.py:236(iter_contiguous_extent)\n",
" 1 0.000 0.000 0.000 0.000 {method 'indices' of 'slice' objects}\n",
" 4 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 index.py:268(rename)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:232(_add_empty_columns)\n",
" 1 0.000 0.000 0.000 0.000 series.py:382(_set_subtyp)\n",
" 2 0.000 0.000 0.000 0.000 series.py:399(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1488(_block)\n",
" 2 0.000 0.000 0.000 0.000 base.py:652(__len__)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3806(_coerce_to_ndarray)\n",
" 1 0.000 0.000 0.000 0.000 common.py:175(_all_none)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1794(_workaround_for_datetime)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:160(_default_stream)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:262(reshape)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:407(_compute_size)\n",
" 1 0.000 0.000 0.000 0.000 inspect.py:72(isclass)\n",
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _weakref.proxy}\n",
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.abs}\n",
" 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}\n",
" 4 0.000 0.000 0.000 0.000 blocks.py:165(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:113(is_all_dates)\n",
" 5 0.000 0.000 0.000 0.000 common.py:122(classes_and_not_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
" 3 0.000 0.000 0.000 0.000 driver.py:1257(owner)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:220(<listcomp>)\n",
"\n",
"\n"
]
}
],
"source": [
"def f():\n",
" r = g_df + g_sr \n",
"cProfile.run('f()', sort='cumtime')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Try a faster impl?"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from collections.abc import Mapping, Sequence\n",
"\n",
"\n",
"class FasterDataFrame(DataFrame):\n",
" def __init__(self, *args, **kwargs):\n",
" DataFrame.__init__(self, *args, **kwargs)\n",
" \n",
" def _apply_op(self, fn, other=None, fill_value=None):\n",
" result = DataFrame()\n",
" result.set_index(self.index)\n",
"\n",
" def op(lhs, rhs):\n",
" if fill_value is None:\n",
" return getattr(lhs, fn)(rhs)\n",
" else:\n",
" return getattr(lhs, fn)(rhs, fill_value)\n",
"\n",
" if other is None:\n",
" for col in self._cols:\n",
" result[col] = getattr(self._cols[col], fn)()\n",
" return result\n",
" elif isinstance(other, Sequence):\n",
" for k, col in enumerate(self._cols):\n",
" result[col] = getattr(self._cols[col], fn)(other[k])\n",
" elif isinstance(other, DataFrame):\n",
"\n",
" lhs, rhs = _align_indices(self, other)\n",
"\n",
" max_num_rows = max(lhs.shape[0], rhs.shape[0])\n",
"\n",
" def fallback(col, fn):\n",
" if fill_value is None:\n",
" return Series.from_masked_array(\n",
" data=rmm.device_array(max_num_rows, dtype=\"float64\"),\n",
" mask=cudautils.make_empty_mask(max_num_rows),\n",
" ).set_index(col.index)\n",
" else:\n",
" return getattr(col, fn)(fill_value)\n",
"\n",
" for col in lhs._cols:\n",
" if col not in rhs._cols:\n",
" result[col] = fallback(lhs._cols[col], fn)\n",
" for col in rhs._cols:\n",
" if col in lhs._cols:\n",
" result[col] = op(lhs._cols[col], rhs._cols[col])\n",
" else:\n",
" result[col] = fallback(rhs._cols[col], _reverse_op(fn))\n",
" elif isinstance(other, Series):\n",
" df_cols = list(self.columns)\n",
" sr_dict = other.to_pandas().to_dict()\n",
" \n",
" all_result_cols = set(df_cols + list(sr_dict.keys()))\n",
" cols_to_binop = set(df_cols) & set(sr_dict.keys())\n",
" cols_to_null = set(df_cols) ^ set(sr_dict.keys())\n",
" \n",
" # create the non-null result columns\n",
" for col in cols_to_binop:\n",
" l_opr = self._cols[col]\n",
" r_opr = sr_dict[col]\n",
" result[col] = op(l_opr, r_opr)\n",
" \n",
" \n",
" # create the block of nulls \n",
" for col in cols_to_null:\n",
" if col in df_cols:\n",
" this_dtype = self._cols[col].dtype\n",
" elif col in sr_dict:\n",
" this_dtype = other.dtype\n",
" \n",
" result[col] = column_empty(len(self), masked=True, dtype=this_dtype) \n",
" \n",
" result = result[sorted(result.columns, key=lambda col: str(col))]\n",
" \n",
" #df_cols = list(result_cols)\n",
" #other_cols = other.to_pandas().to_dict()\n",
" #result_cols = list(self.columns)\n",
" #for new_col in other_cols.keys():\n",
" # if new_col not in result_cols:\n",
" # result_cols.append(new_col)\n",
" #for col in result_cols:\n",
" # if col in df_cols and col in other.index:\n",
" # l_opr = self._cols[col]\n",
" # r_opr = other_cols[col]\n",
" # else:\n",
" # if col not in df_cols:\n",
" # r_opr = other_cols[col]\n",
" # l_opr = Series(\n",
" # column_empty(\n",
" # len(self),\n",
" # masked=True,\n",
" # dtype=np.array(r_opr).dtype,\n",
" # )\n",
" # )\n",
" # if col not in other.index:\n",
" # r_opr = None\n",
" # l_opr = self._cols[col]\n",
" # result[col] = op(l_opr, r_opr)\n",
" \n",
" elif isinstance(other, numbers.Number):\n",
" for col in self._cols:\n",
" result[col] = op(self._cols[col], other)\n",
" else:\n",
" raise NotImplementedError(\n",
" \"DataFrame operations with \" + str(type(other)) + \" not \"\n",
" \"supported at this time.\"\n",
" )\n",
" return result"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"gdf = FasterDataFrame.from_pandas(host_df)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5gAAAIICAYAAAAL2UFKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAbIklEQVR4nO3dcbCldX3f8c+3u+AKKonsbYwudJlpIrvg4uqF1OqgxaSDykjNkBYmpFExO8XRJrWZBsfMODjxD1tG7R/qhLFJYwtG3MrUoSGGAAkwMeJdgyvLhsYoIWsI3ixGJbIB5Nc/uDK4Xbxnw/fce8/u6zVzZ++553fPfu/Ob1je+zzneWqMEQAAAHi6/tFqDwAAAMCRQWACAADQQmACAADQQmACAADQQmACAADQQmACAADQYv00XnTjxo1j8+bN03hpAAAAVtGuXbv+Zowxd6jnphKYmzdvzsLCwjReGgAAgFVUVX/xVM85RRYAAIAWAhMAAIAWAhMAAIAWU3kPJgAAwCx45JFHsm/fvhw4cGC1R1lzNmzYkE2bNuWYY46Z+HsEJgAAcNTat29fnv3sZ2fz5s2pqtUeZ80YY2T//v3Zt29fTjnllIm/zymyAADAUevAgQM58cQTxeVBqionnnjiYR/ZFZgAAMBRTVwe2j/kz0VgAgAAHIFe9apXZWFhYUV/T+/BBAAAWNJ9MHOM3tdb6xzBBAAAWEX33HNPTj311Pzsz/5stmzZkgsuuCDf+c538p73vCdnnnlmTj/99OzYsSNjqVZf9apX5Vd+5Vdy1lln5cd//Mdz6623JkkeeuihXHjhhdmyZUve8IY35KGHHnri97j00kszPz+f0047Le9+97uf+Ppll12WrVu3Ztu2bfnlX/7lp/2zCEwAAIBVdvfdd+etb31r9u7dm+c85zn58Ic/nLe97W35/Oc/nzvvvDMPPfRQrrvuuifWP/roo7n99tvzwQ9+MJdffnmS5CMf+UiOO+647N27N5dffnl27dr1xPr3vve9WVhYyO7du/OHf/iH2b17d/bv359rr702e/bsye7du/Orv/qrT/vnEJgAAACr7KSTTsrLX/7yJMnFF1+c2267LTfffHN+4id+Ii960Yty0003Zc+ePU+s/+mf/ukkyUtf+tLcc889SZJbbrklF198cZJk27Zt2bZt2xPrr7nmmrzkJS/J9u3bs2fPntx111054YQTsmHDhlxyySX51Kc+leOOO+5p/xwCEwAAYJUdfMXWqspb3/rW7Ny5M1/60pfyC7/wC993y5BnPOMZSZJ169bl0Ucf/YGv/dWvfjVXXHFFbrzxxuzevTuve93rcuDAgaxfvz633357Lrjgglx33XU599xzn/bPITABAABW2b333pvPfvazSZKrr746r3jFK5IkGzduzIMPPpidO3cu+xpnn312rr766iTJnXfemd27dydJvvWtb+X444/PCSeckPvvvz/XX399kuTBBx/MN7/5zbz2ta/NBz7wgXzxi1982j+Hq8gCAACsshe+8IX50Ic+lDe/+c3ZunVrLr300nzjG9/I6aefnuc973k588wzl32NSy+9NG9605uyZcuWbNmyJS996UuTJGeccUa2b9+eU0899ftOxf32t7+d888/PwcOHMgYI+9///uf9s9RYwrXzZ2fnx8rfb8VAACAw7V3795s2bJlVWe45557ct555+XOO+9c1TkO5VB/PlW1a4wxf6j1TpEFAACghcAEAABYRZs3b16TRy//IQQmAAAALQQmAAAALQQmAAAALY7O25QcdBNTAHhapnBFdgCYRY5gAgAAzKA3vvGN2blzZ5Lk1ltvzWmnnZYXv/jFeeihh1ZtJoEJAADwPVW9Hyvkqquuyjvf+c7ccccdeeYzn7liv+/Bjs5TZAEAANaIj33sY7niiitSVdm2bVvWrVuX8847LxdccEGS5FnPelYefPDBjDHy9re/PTfccENOOumkHHvssUmSj370o7nmmmvymc98Jtdff32uuuqqVftZBCYAAMAq2bNnT37t134tf/RHf5SNGzfmgQceyDve8Y5Drr322mtz991356677sr999+frVu35s1vfnPe8pa35Lbbbvu+KF0tTpEFAABYJTfddFN+5md+Jhs3bkySPPe5z33KtbfccksuuuiirFu3Ls9//vNzzjnnrNSYExOYAAAAa8j69evz2GOPJUkee+yxPPzww6s80eQEJgAAwCo555xz8slPfjL79+9PkjzwwAPZvHlzdu3alST59Kc/nUceeSRJcvbZZ+cTn/hEvvvd7+a+++7LzTffvGpzPxXvwQQAAFglp512Wt71rnflla98ZdatW5ft27fnfe97X84///ycccYZOffcc3P88ccn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\n",
"text/plain": [
"<Figure size 1152x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"compare_impls()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 4871331 function calls (4861321 primitive calls) in 10.101 seconds\n",
"\n",
" Ordered by: cumulative time\n",
"\n",
" ncalls tottime percall cumtime percall filename:lineno(function)\n",
" 1 0.000 0.000 10.101 10.101 {built-in method builtins.exec}\n",
" 1 0.035 0.035 10.100 10.100 <string>:1(<module>)\n",
" 1 0.000 0.000 8.042 8.042 <ipython-input-16-31bfd0a798a3>:1(f)\n",
" 1 0.000 0.000 8.042 8.042 dataframe.py:834(__add__)\n",
" 1 1.162 1.162 8.042 8.042 dataframe.py:755(_apply_op)\n",
" 10000 0.012 0.000 4.425 0.000 dataframe.py:759(op)\n",
" 10000 0.015 0.000 4.409 0.000 series.py:667(__add__)\n",
" 10000 0.076 0.000 4.394 0.000 series.py:588(_binaryop)\n",
" 10000 0.065 0.000 3.973 0.000 numerical.py:79(binary_operator)\n",
" 10000 0.086 0.000 3.859 0.000 numerical.py:429(_numeric_column_binop)\n",
" 10000 0.062 0.000 2.586 0.000 column.py:1055(column_empty)\n",
" 10000 0.124 0.000 2.408 0.000 dataframe.py:433(__setitem__)\n",
" 10000 1.903 0.000 2.252 0.000 dataframe.py:1564(insert)\n",
" 10001 0.012 0.000 2.023 0.000 utils.py:673(__call__)\n",
" 10000 0.004 0.000 2.009 0.000 rmm.py:277(finalizer)\n",
" 10000 0.044 0.000 2.006 0.000 rmm.py:167(device_array)\n",
" 10000 1.991 0.000 2.005 0.000 {rmm._lib.lib.rmm_free}\n",
" 10000 1.078 0.000 1.098 0.000 {rmm._lib.lib.rmm_alloc}\n",
" 10000 0.054 0.000 0.774 0.000 rmm.py:31(_array_helper)\n",
" 10000 0.414 0.000 0.768 0.000 {cudf._lib.binops.apply_op}\n",
" 50000 0.212 0.000 0.471 0.000 dtypes.py:71(is_categorical_dtype)\n",
" 10000 0.045 0.000 0.346 0.000 dataframe.py:1531(_prepare_series_for_add)\n",
" 10001 0.060 0.000 0.340 0.000 devicearray.py:65(__init__)\n",
" 10000 0.008 0.000 0.317 0.000 devices.py:209(get_context)\n",
" 230010 0.167 0.000 0.311 0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)\n",
" 10002 0.013 0.000 0.309 0.000 devices.py:131(get_or_create_context)\n",
" 10000 0.051 0.000 0.308 0.000 column.py:1089(build_column)\n",
" 30000 0.062 0.000 0.295 0.000 numerical.py:28(__init__)\n",
" 10002 0.081 0.000 0.285 0.000 devices.py:145(_get_or_create_context_uncached)\n",
" 10001 0.041 0.000 0.264 0.000 dummyarray.py:149(from_desc)\n",
" 1270256 0.180 0.000 0.234 0.000 {built-in method builtins.isinstance}\n",
" 30000 0.060 0.000 0.233 0.000 column.py:856(__init__)\n",
" 10000 0.024 0.000 0.223 0.000 numerical.py:59(replace)\n",
" 10002 0.061 0.000 0.215 0.000 dummyarray.py:159(__init__)\n",
" 10000 0.026 0.000 0.199 0.000 column.py:449(replace)\n",
" 10004 0.057 0.000 0.168 0.000 driver.py:379(__enter__)\n",
" 10000 0.013 0.000 0.147 0.000 series.py:941(_normalize_binop_value)\n",
" 620053 0.147 0.000 0.147 0.000 {built-in method builtins.hasattr}\n",
" 30000 0.048 0.000 0.138 0.000 column.py:177(__init__)\n",
" 10000 0.027 0.000 0.133 0.000 dataframe.py:1473(_sanitize_values)\n",
" 10000 0.074 0.000 0.133 0.000 numerical.py:120(normalize_binop_value)\n",
" 70000 0.066 0.000 0.126 0.000 numeric.py:1782(isscalar)\n",
" 40000 0.085 0.000 0.118 0.000 series.py:90(__init__)\n",
"220021/210020 0.066 0.000 0.115 0.000 {built-in method builtins.len}\n",
" 20000 0.107 0.000 0.107 0.000 {cudf._lib.nvtx.nvtx_range_push}\n",
" 10000 0.017 0.000 0.102 0.000 dataframe.py:1437(_sanitize_columns)\n",
" 10000 0.017 0.000 0.101 0.000 column.py:462(view)\n",
" 10002 0.028 0.000 0.095 0.000 dummyarray.py:193(_compute_extent)\n",
" 20005 0.067 0.000 0.091 0.000 driver.py:290(safe_cuda_api_call)\n",
" 100012 0.061 0.000 0.082 0.000 common.py:1981(pandas_dtype)\n",
" 10000 0.035 0.000 0.077 0.000 buffer.py:30(__init__)\n",
" 20000 0.025 0.000 0.073 0.000 dtypes.py:160(is_list_like)\n",
" 10000 0.015 0.000 0.064 0.000 series.py:238(_copy_construct)\n",
" 10001 0.025 0.000 0.064 0.000 driver.py:1244(__init__)\n",
" 10000 0.029 0.000 0.061 0.000 column.py:893(_replace_defaults)\n",
" 20000 0.060 0.000 0.060 0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}\n",
" 10000 0.018 0.000 0.055 0.000 api.py:202(_prepare_shape_strides_dtype)\n",
" 60013 0.018 0.000 0.054 0.000 abc.py:137(__instancecheck__)\n",
" 20004 0.019 0.000 0.049 0.000 dummyarray.py:109(compute_index)\n",
" 30000 0.025 0.000 0.046 0.000 column.py:218(_update_null_count)\n",
" 30000 0.017 0.000 0.045 0.000 buffer.py:189(is_contiguous)\n",
" 10002 0.028 0.000 0.044 0.000 dummyarray.py:169(_compute_layout)\n",
" 10000 0.008 0.000 0.042 0.000 <__array_function__ internals>:2(result_type)\n",
" 20000 0.030 0.000 0.042 0.000 column.py:423(_replace_defaults)\n",
" 10000 0.012 0.000 0.041 0.000 <__array_function__ internals>:2(min_scalar_type)\n",
" 10000 0.033 0.000 0.039 0.000 index.py:458(__contains__)\n",
" 10001 0.036 0.000 0.039 0.000 utils.py:655(__init__)\n",
" 10000 0.019 0.000 0.038 0.000 utils.py:149(get_result_name)\n",
" 60013 0.035 0.000 0.035 0.000 {built-in method _abc._abc_instancecheck}\n",
" 10000 0.030 0.000 0.032 0.000 api.py:215(_fill_stride_by_order)\n",
" 10000 0.013 0.000 0.030 0.000 driver.py:1827(memory_size_from_info)\n",
" 20004 0.013 0.000 0.030 0.000 {built-in method builtins.sum}\n",
" 10000 0.008 0.000 0.028 0.000 dtypes.py:125(is_scalar)\n",
" 30000 0.018 0.000 0.028 0.000 devicearray.py:439(is_c_contiguous)\n",
" 40001 0.019 0.000 0.026 0.000 devicearray.py:172(device_ctypes_pointer)\n",
" 30000 0.015 0.000 0.026 0.000 index.py:491(__len__)\n",
" 10000 0.009 0.000 0.023 0.000 cudautils.py:27(to_device)\n",
" 90000 0.020 0.000 0.020 0.000 column.py:309(__len__)\n",
" 20005 0.010 0.000 0.018 0.000 __init__.py:1356(debug)\n",
"50158/50157 0.018 0.000 0.018 0.000 {built-in method builtins.getattr}\n",
" 40008 0.011 0.000 0.017 0.000 dummyarray.py:110(<genexpr>)\n",
" 40005 0.017 0.000 0.017 0.000 {built-in method builtins.max}\n",
" 10000 0.014 0.000 0.014 0.000 {built-in method numba.mviewbuf.memoryview_get_extents_info}\n",
" 10000 0.012 0.000 0.014 0.000 series.py:235(_copy_construct_defaults)\n",
" 90000 0.014 0.000 0.014 0.000 column.py:238(name)\n",
" 10000 0.008 0.000 0.014 0.000 rmm.py:225(auto_device)\n",
" 40002 0.013 0.000 0.013 0.000 {method 'update' of 'dict' objects}\n",
" 10004 0.005 0.000 0.011 0.000 devices.py:178(_get_attached_context)\n",
" 80000 0.011 0.000 0.011 0.000 column.py:862(dtype)\n",
" 40001 0.011 0.000 0.011 0.000 {method 'pop' of 'dict' objects}\n",
" 20003 0.011 0.000 0.011 0.000 {built-in method _functools.reduce}\n",
" 20004 0.007 0.000 0.010 0.000 dummyarray.py:181(is_contig)\n",
" 10004 0.005 0.000 0.010 0.000 driver.py:405(__exit__)\n",
" 30001 0.010 0.000 0.010 0.000 dummyarray.py:228(is_c_contig)\n",
" 10000 0.004 0.000 0.009 0.000 series.py:388(__len__)\n",
" 10002 0.005 0.000 0.009 0.000 <string>:1(__new__)\n",
" 10002 0.004 0.000 0.008 0.000 devices.py:77(__getattr__)\n",
" 20000 0.008 0.000 0.008 0.000 {cudf._lib.nvtx.nvtx_range_pop}\n",
" 20005 0.008 0.000 0.008 0.000 __init__.py:1614(isEnabledFor)\n",
" 10001 0.005 0.000 0.007 0.000 driver.py:1773(device_memory_size)\n",
" 40001 0.007 0.000 0.007 0.000 driver.py:1308(device_ctypes_pointer)\n",
" 20005 0.007 0.000 0.007 0.000 driver.py:318(_check_error)\n",
" 30009 0.006 0.000 0.006 0.000 {built-in method builtins.next}\n",
" 20004 0.006 0.000 0.006 0.000 dummyarray.py:81(get_offset)\n",
" 40002 0.006 0.000 0.006 0.000 column.py:404(null_count)\n",
" 40001 0.006 0.000 0.006 0.000 series.py:210(name)\n",
" 30000 0.006 0.000 0.006 0.000 dataframe.py:523(__len__)\n",
" 20004 0.006 0.000 0.006 0.000 {built-in method _ctypes.byref}\n",
" 10002 0.006 0.000 0.006 0.000 dummyarray.py:45(__init__)\n",
" 10001 0.003 0.000 0.005 0.000 driver.py:1857(is_device_memory)\n",
" 10000 0.005 0.000 0.005 0.000 rmm.py:270(_make_finalizer)\n",
" 30001 0.005 0.000 0.005 0.000 series.py:1379(index)\n",
" 10004 0.005 0.000 0.005 0.000 driver.py:364(get_active_context)\n",
" 10000 0.005 0.000 0.005 0.000 {built-in method numpy.promote_types}\n",
" 10000 0.004 0.000 0.005 0.000 series.py:2644(_align_indices)\n",
" 10002 0.005 0.000 0.005 0.000 devices.py:37(__getitem__)\n",
" 10002 0.005 0.000 0.005 0.000 {built-in method builtins.delattr}\n",
" 10002 0.004 0.000 0.004 0.000 dummyarray.py:195(<listcomp>)\n",
" 20004 0.004 0.000 0.004 0.000 dummyarray.py:162(<genexpr>)\n",
" 10007 0.004 0.000 0.004 0.000 {built-in method __new__ of type object at 0x55dd5fd79240}\n",
" 20004 0.003 0.000 0.003 0.000 dummyarray.py:105(is_contiguous)\n",
" 20001 0.003 0.000 0.003 0.000 column.py:316(data)\n",
" 10002 0.003 0.000 0.003 0.000 driver.py:516(get_primary_context)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:203(__init__)\n",
" 10000 0.003 0.000 0.003 0.000 buffer.py:211(ndim)\n",
" 10000 0.003 0.000 0.003 0.000 column.py:409(has_null_mask)\n",
" 20004 0.003 0.000 0.003 0.000 dummyarray.py:163(<genexpr>)\n",
" 20000 0.003 0.000 0.003 0.000 column.py:322(mask)\n",
" 10002 0.002 0.000 0.002 0.000 driver.py:714(prepare_for_use)\n",
" 10001 0.002 0.000 0.002 0.000 {method 'append' of 'list' objects}\n",
" 10008 0.002 0.000 0.002 0.000 {built-in method builtins.iter}\n",
" 10000 0.002 0.000 0.002 0.000 devicearray.py:451(__len__)\n",
" 1 0.002 0.002 0.002 0.002 series.py:1463(to_dict)\n",
" 10002 0.002 0.000 0.002 0.000 driver.py:409(__bool__)\n",
" 2 0.000 0.000 0.002 0.001 dataframe.py:1135(columns)\n",
" 4/2 0.000 0.000 0.002 0.001 base.py:253(__new__)\n",
" 10000 0.002 0.000 0.002 0.000 {method 'keys' of 'collections.OrderedDict' objects}\n",
" 10000 0.002 0.000 0.002 0.000 multiarray.py:584(min_scalar_type)\n",
" 10000 0.002 0.000 0.002 0.000 dataframe.py:1187(index)\n",
" 10000 0.001 0.000 0.001 0.000 multiarray.py:635(result_type)\n",
" 1 0.000 0.000 0.001 0.001 series.py:1363(to_pandas)\n",
" 1 0.000 0.000 0.001 0.001 numerical.py:186(to_pandas)\n",
" 4 0.000 0.000 0.001 0.000 common.py:222(asarray_tuplesafe)\n",
" 1 0.000 0.000 0.001 0.001 base.py:3752(_try_convert_to_int_index)\n",
" 1 0.000 0.000 0.001 0.001 column.py:381(to_array)\n",
" 1 0.000 0.000 0.001 0.001 buffer.py:165(to_array)\n",
" 2 0.000 0.000 0.001 0.000 devices.py:222(_require_cuda_context)\n",
" 2 0.000 0.000 0.000 0.000 cast.py:1193(construct_1d_object_array_from_listlike)\n",
" 1 0.000 0.000 0.000 0.000 series.py:152(__init__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:211(copy_to_host)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1903(device_to_host)\n",
" 2 0.000 0.000 0.000 0.000 {pandas._libs.lib.infer_dtype}\n",
" 1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.ndarray' objects}\n",
" 4 0.000 0.000 0.000 0.000 devices.py:111(ensure_context)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:107(__enter__)\n",
" 3 0.000 0.000 0.000 0.000 base.py:1117(__iter__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:495(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 devicearray.py:504(_do_getitem)\n",
" 4 0.000 0.000 0.000 0.000 __init__.py:221(iteritems)\n",
" 1 0.000 0.000 0.000 0.000 series.py:1446(iteritems)\n",
" 23 0.000 0.000 0.000 0.000 base.py:75(is_dtype)\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:159(__init__)\n",
" 1 0.000 0.000 0.000 0.000 managers.py:1443(__init__)\n",
" 23 0.000 0.000 0.000 0.000 common.py:1845(_is_dtype_type)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3080(make_block)\n",
" 3 0.000 0.000 0.000 0.000 common.py:702(is_datetimelike)\n",
" 7 0.000 0.000 0.000 0.000 common.py:403(is_datetime64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:204(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:3034(get_block_type)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:537(sanitize_array)\n",
" 1 0.000 0.000 0.000 0.000 index.py:622(to_pandas)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1078(is_datetime64_any_dtype)\n",
" 2 0.000 0.000 0.000 0.000 index.py:993(as_index)\n",
" 90 0.000 0.000 0.000 0.000 generic.py:7(_check)\n",
" 9 0.000 0.000 0.000 0.000 common.py:536(is_interval_dtype)\n",
" 8 0.000 0.000 0.000 0.000 base.py:3632(_values)\n",
" 1 0.000 0.000 0.000 0.000 range.py:69(__new__)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:973(is_dtype)\n",
" 1 0.000 0.000 0.000 0.000 range.py:176(_data)\n",
" 1 0.000 0.000 0.000 0.000 dataframe.py:1311(set_index)\n",
" 9 0.000 0.000 0.000 0.000 common.py:572(is_categorical_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numpy.arange}\n",
" 8 0.000 0.000 0.000 0.000 common.py:434(is_datetime64tz_dtype)\n",
" 14 0.000 0.000 0.000 0.000 common.py:1702(is_extension_array_dtype)\n",
" 2 0.000 0.000 0.000 0.000 index.py:470(copy)\n",
" 5 0.000 0.000 0.000 0.000 common.py:503(is_period_dtype)\n",
" 11 0.000 0.000 0.000 0.000 dataframe.py:305(__setattr__)\n",
" 2 0.000 0.000 0.000 0.000 generic.py:5069(__setattr__)\n",
" 5 0.000 0.000 0.000 0.000 dtypes.py:827(is_dtype)\n",
" 3 0.000 0.000 0.000 0.000 {built-in method numpy.empty}\n",
" 2 0.000 0.000 0.000 0.000 copy.py:66(copy)\n",
" 7 0.000 0.000 0.000 0.000 common.py:472(is_timedelta64_dtype)\n",
" 3 0.000 0.000 0.000 0.000 _dtype.py:319(_name_get)\n",
" 1 0.000 0.000 0.000 0.000 construction.py:684(_try_cast)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:34(__new__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1282(view)\n",
" 1 0.000 0.000 0.000 0.000 cast.py:832(maybe_castable)\n",
" 7 0.000 0.000 0.000 0.000 inference.py:253(is_list_like)\n",
" 1 0.000 0.000 0.000 0.000 range.py:136(_simple_new)\n",
" 2 0.000 0.000 0.000 0.000 base.py:504(_simple_new)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:116(__exit__)\n",
" 16/10 0.000 0.000 0.000 0.000 dataframe.py:332(__getattr__)\n",
" 14 0.000 0.000 0.000 0.000 dtypes.py:68(find)\n",
" 1 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}\n",
" 3 0.000 0.000 0.000 0.000 numerictypes.py:365(issubdtype)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:78(__init__)\n",
" 1 0.000 0.000 0.000 0.000 common.py:262(is_categorical)\n",
" 1 0.000 0.000 0.000 0.000 _methods.py:47(_all)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:219(<listcomp>)\n",
" 59 0.000 0.000 0.000 0.000 {built-in method builtins.issubclass}\n",
" 2 0.000 0.000 0.000 0.000 common.py:1578(is_bool_dtype)\n",
" 2 0.000 0.000 0.000 0.000 copy.py:268(_reconstruct)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:929(construct_from_string)\n",
" 1 0.000 0.000 0.000 0.000 {method 'reduce' of 'numpy.ufunc' objects}\n",
" 2 0.000 0.000 0.000 0.000 _asarray.py:16(asarray)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1802(host_pointer)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:53(__getitem__)\n",
" 1 0.000 0.000 0.000 0.000 arrays.py:7(extract_array)\n",
" 2 0.000 0.000 0.000 0.000 {built-in method numpy.array}\n",
" 4 0.000 0.000 0.000 0.000 series.py:476(_values)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:786(construct_from_string)\n",
" 4 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_scalar}\n",
" 1 0.000 0.000 0.000 0.000 range.py:165(_validate_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1369(__init__)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1844(device_pointer)\n",
" 5 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:416(parent)\n",
" 2 0.000 0.000 0.000 0.000 {method 'format' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 common.py:160(is_sparse)\n",
" 3 0.000 0.000 0.000 0.000 common.py:980(is_unsigned_integer_dtype)\n",
" 2 0.000 0.000 0.000 0.000 index.py:439(__init__)\n",
" 1 0.000 0.000 0.000 0.000 series.py:354(_set_axis)\n",
" 2 0.000 0.000 0.000 0.000 series.py:392(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1549(internal_values)\n",
" 1 0.000 0.000 0.000 0.000 common.py:350(standardize_mapping)\n",
" 2 0.000 0.000 0.000 0.000 common.py:923(is_signed_integer_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:1028(is_int64_dtype)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1849(device_ctypes_pointer)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:237(helper)\n",
" 2 0.000 0.000 0.000 0.000 index.py:1039(_setdefault_name)\n",
" 18 0.000 0.000 0.000 0.000 common.py:117(classes)\n",
" 6 0.000 0.000 0.000 0.000 numerictypes.py:293(issubclass_)\n",
" 1 0.000 0.000 0.000 0.000 column.py:642(to_dense_buffer)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:199(mgr_locs)\n",
" 3 0.000 0.000 0.000 0.000 range.py:510(__len__)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:127(__init__)\n",
" 18 0.000 0.000 0.000 0.000 common.py:119(<lambda>)\n",
" 2 0.000 0.000 0.000 0.000 copyreg.py:87(__newobj__)\n",
" 2 0.000 0.000 0.000 0.000 {method '__reduce_ex__' of 'object' objects}\n",
" 1 0.000 0.000 0.000 0.000 common.py:131(is_object_dtype)\n",
" 1 0.000 0.000 0.000 0.000 common.py:746(is_dtype_equal)\n",
" 4 0.000 0.000 0.000 0.000 common.py:1809(_get_dtype)\n",
" 2 0.000 0.000 0.000 0.000 _internal.py:865(npy_ctypes_check)\n",
" 2 0.000 0.000 0.000 0.000 contextlib.py:81(__init__)\n",
" 2 0.000 0.000 0.000 0.000 range.py:89(ensure_int)\n",
" 1 0.000 0.000 0.000 0.000 generic.py:5053(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 base.py:475(<genexpr>)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:452(construct_from_string)\n",
" 5 0.000 0.000 0.000 0.000 common.py:127(<lambda>)\n",
" 2 0.000 0.000 0.000 0.000 common.py:1545(is_float_dtype)\n",
" 4 0.000 0.000 0.000 0.000 devices.py:181(_set_attached_context)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method numba.mviewbuf.memoryview_get_buffer}\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1393(__getattr__)\n",
" 2 0.000 0.000 0.000 0.000 dummyarray.py:236(iter_contiguous_extent)\n",
" 1 0.000 0.000 0.000 0.000 abc.py:141(__subclasscheck__)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.all}\n",
" 5 0.000 0.000 0.000 0.000 {method 'rpartition' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 index.py:568(dtype)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 2 0.000 0.000 0.000 0.000 series.py:399(name)\n",
" 4 0.000 0.000 0.000 0.000 managers.py:1488(_block)\n",
" 4 0.000 0.000 0.000 0.000 blocks.py:165(internal_values)\n",
" 2 0.000 0.000 0.000 0.000 base.py:652(__len__)\n",
" 1 0.000 0.000 0.000 0.000 base.py:3806(_coerce_to_ndarray)\n",
" 1 0.000 0.000 0.000 0.000 base.py:5318(ensure_index)\n",
" 3 0.000 0.000 0.000 0.000 base.py:633(_reset_identity)\n",
" 2 0.000 0.000 0.000 0.000 dtypes.py:672(construct_from_string)\n",
" 2 0.000 0.000 0.000 0.000 inference.py:121(is_iterator)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1380(deref)\n",
" 2 0.000 0.000 0.000 0.000 driver.py:1787(_is_datetime_dtype)\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method _weakref.proxy}\n",
" 2 0.000 0.000 0.000 0.000 {built-in method builtins.abs}\n",
" 1 0.000 0.000 0.000 0.000 {built-in method builtins.any}\n",
" 2 0.000 0.000 0.000 0.000 {method 'startswith' of 'str' objects}\n",
" 1 0.000 0.000 0.000 0.000 {method 'indices' of 'slice' objects}\n",
" 2 0.000 0.000 0.000 0.000 {method 'setdefault' of 'dict' objects}\n",
" 3 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 index.py:268(rename)\n",
" 2 0.000 0.000 0.000 0.000 cycler.py:227(<genexpr>)\n",
" 1 0.000 0.000 0.000 0.000 series.py:382(_set_subtyp)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:89(_check_ndim)\n",
" 1 0.000 0.000 0.000 0.000 numeric.py:113(is_all_dates)\n",
" 1 0.000 0.000 0.000 0.000 common.py:175(_all_none)\n",
" 5 0.000 0.000 0.000 0.000 common.py:122(classes_and_not_datetimelike)\n",
" 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1794(_workaround_for_datetime)\n",
" 1 0.000 0.000 0.000 0.000 driver.py:1868(require_device_memory)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:160(_default_stream)\n",
" 2 0.000 0.000 0.000 0.000 devicearray.py:234(<genexpr>)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:262(reshape)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:407(_compute_size)\n",
" 1 0.000 0.000 0.000 0.000 inspect.py:72(isclass)\n",
" 1 0.000 0.000 0.000 0.000 {method 'items' of 'collections.OrderedDict' objects}\n",
" 4 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}\n",
" 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}\n",
" 2 0.000 0.000 0.000 0.000 dataframe.py:232(_add_empty_columns)\n",
" 1 0.000 0.000 0.000 0.000 blocks.py:195(mgr_locs)\n",
" 1 0.000 0.000 0.000 0.000 {pandas._libs.lib.is_integer}\n",
" 3 0.000 0.000 0.000 0.000 driver.py:1257(owner)\n",
" 1 0.000 0.000 0.000 0.000 dummyarray.py:220(<listcomp>)\n",
"\n",
"\n"
]
}
],
"source": [
"def f():\n",
" r = gdf + gsr \n",
"cProfile.run('f()', sort='cumtime')"
]
}
],
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment