{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7 reasons why I love Vaex for data science" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:04.004565Z", "start_time": "2020-02-14T10:51:03.030891Z" } }, "outputs": [], "source": [ "import vaex\n", "\n", "import numpy as np\n", "import pylab as plt\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Introduction\n", "\n", "[Vaex](https://github.com/vaexio/vaex) is an open-source DataFrame library for Python with an API that closely resembles that of [Pandas](https://pandas.pydata.org/docs/index.html). I have been using Vaex for several years in both academic and industry environments, and it is my go-to library for several of the data science projects I am working on. In this article I would like to share some of my favourite Vaex features. Some may be obvious by now, but some may surprise you.\n", "\n", "The following code examples are run on a MacBook Pro (15\", 2018, 2.6GHz Intel Core i7, 32GB RAM)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Easy to work with very large datasets\n", "\n", "Nowadays, it becomes increasingly more common to encounter datasets that are larger than the available RAM on a typical laptop or a desktop workstation. [Vaex](https://github.com/vaexio/vaex) solves this problem rather elegantly by the use of memory mapping and lazy evaluations. As long as your data is stored in a memory mappable file format such as Apache Arrow or HDF5, Vaex will open it instantly, no matter how large it is, or how much RAM your machine has. In fact, the size of the files Vaex can read are only limited by the amount of free hard-disk space you have. If your data is not in a memory-mappable file format (e.g. CSV, JSON), you can easily convert it by using the rich Pandas I/O in combination with Vaex. [See this guide](https://docs.vaex.io/en/latest/faq.html#I-have-a-massive-CSV-file-which-I-can-not-fit-all-into-memory-at-one-time.-How-do-I-convert-it-to-HDF5?) on how to do so." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:04.842737Z", "start_time": "2020-02-14T10:51:04.718847Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 jovan staff 107G Jul 3 2019 ../vaex-taxi/data/yellow_taxi_2009_2015_f32.hdf5\r\n" ] } ], "source": [ "# Check the file size on disk\n", "!ls -l -h ../vaex-taxi/data/yellow_taxi_2009_2015_f32.hdf5" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:05.825240Z", "start_time": "2020-02-14T10:51:05.765977Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
# vendor_id pickup_datetime dropoff_datetime passenger_count payment_type trip_distance pickup_longitude pickup_latitude rate_code store_and_fwd_flag dropoff_longitude dropoff_latitude fare_amount surcharge mta_tax tip_amount tolls_amount total_amount
0 VTS 2009-01-04 02:52:00.0000000002009-01-04 03:02:00.0000000001 CASH 2.630000114440918 -73.9919586181640640.72156524658203 nan nan -73.99380493164062 40.6959228515625 8.899999618530273 0.5 nan 0.0 0.0 9.399999618530273
1 VTS 2009-01-04 03:31:00.0000000002009-01-04 03:38:00.0000000003 Credit 4.550000190734863 -73.9821014404296940.736289978027344nan nan -73.95584869384766 40.76802825927734412.1000003814697270.5 nan 2.0 0.0 14.600000381469727
2 VTS 2009-01-03 15:43:00.0000000002009-01-03 15:57:00.0000000005 Credit 10.350000381469727-74.0025863647461 40.73974609375 nan nan -73.86997985839844 40.77022552490234423.7000007629394530.0 nan 4.739999771118164 0.0 28.440000534057617
3 DDS 2009-01-01 20:52:58.0000000002009-01-01 21:14:00.0000000001 CREDIT 5.0 -73.9742660522461 40.79095458984375 nan nan -73.9965591430664 40.73184967041015614.8999996185302730.5 nan 3.049999952316284 0.0 18.450000762939453
4 DDS 2009-01-24 16:18:23.0000000002009-01-24 16:24:56.0000000001 CASH 0.4000000059604645-74.0015792846679740.719383239746094nan nan -74.00837707519531 40.7203483581543 3.700000047683716 0.0 nan 0.0 0.0 3.700000047683716
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1,173,057,922VTS 2015-12-31 23:59:56.0000000002016-01-01 00:08:18.0000000005 1 1.2000000476837158-73.9938125610351640.72087097167969 1.0 0.0 -73.98621368408203 40.7224693298339847.5 0.5 0.5 1.75999999046325680.0 10.5600004196167
1,173,057,923CMT 2015-12-31 23:59:58.0000000002016-01-01 00:05:19.0000000002 2 2.0 -73.9652709960937540.76028060913086 1.0 0.0 -73.93951416015625 40.75238800048828 7.5 0.5 0.5 0.0 0.0 8.800000190734863
1,173,057,924CMT 2015-12-31 23:59:59.0000000002016-01-01 00:12:55.0000000002 2 3.799999952316284 -73.9872970581054740.7390785217285161.0 0.0 -73.9886703491211 40.69329833984375 13.5 0.5 0.5 0.0 0.0 14.800000190734863
1,173,057,925VTS 2015-12-31 23:59:59.0000000002016-01-01 00:10:26.0000000001 2 1.9600000381469727-73.99755859375 40.72569274902344 1.0 0.0 -74.01712036132812 40.705322265625 8.5 0.5 0.5 0.0 0.0 9.800000190734863
1,173,057,926VTS 2015-12-31 23:59:59.0000000002016-01-01 00:21:30.0000000001 1 1.059999942779541 -73.9843978881836 40.76725769042969 1.0 0.0 -73.99098205566406 40.76057052612305 13.5 0.5 0.5 2.96000003814697270.0 17.760000228881836
" ], "text/plain": [ "# vendor_id pickup_datetime dropoff_datetime passenger_count payment_type trip_distance pickup_longitude pickup_latitude rate_code store_and_fwd_flag dropoff_longitude dropoff_latitude fare_amount surcharge mta_tax tip_amount tolls_amount total_amount\n", "0 VTS 2009-01-04 02:52:00.000000000 2009-01-04 03:02:00.000000000 1 CASH 2.630000114440918 -73.99195861816406 40.72156524658203 nan nan -73.99380493164062 40.6959228515625 8.899999618530273 0.5 nan 0.0 0.0 9.399999618530273\n", "1 VTS 2009-01-04 03:31:00.000000000 2009-01-04 03:38:00.000000000 3 Credit 4.550000190734863 -73.98210144042969 40.736289978027344 nan nan -73.95584869384766 40.768028259277344 12.100000381469727 0.5 nan 2.0 0.0 14.600000381469727\n", "2 VTS 2009-01-03 15:43:00.000000000 2009-01-03 15:57:00.000000000 5 Credit 10.350000381469727 -74.0025863647461 40.73974609375 nan nan -73.86997985839844 40.770225524902344 23.700000762939453 0.0 nan 4.739999771118164 0.0 28.440000534057617\n", "3 DDS 2009-01-01 20:52:58.000000000 2009-01-01 21:14:00.000000000 1 CREDIT 5.0 -73.9742660522461 40.79095458984375 nan nan -73.9965591430664 40.731849670410156 14.899999618530273 0.5 nan 3.049999952316284 0.0 18.450000762939453\n", "4 DDS 2009-01-24 16:18:23.000000000 2009-01-24 16:24:56.000000000 1 CASH 0.4000000059604645 -74.00157928466797 40.719383239746094 nan nan -74.00837707519531 40.7203483581543 3.700000047683716 0.0 nan 0.0 0.0 3.700000047683716\n", "... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", "1,173,057,922 VTS 2015-12-31 23:59:56.000000000 2016-01-01 00:08:18.000000000 5 1 1.2000000476837158 -73.99381256103516 40.72087097167969 1.0 0.0 -73.98621368408203 40.722469329833984 7.5 0.5 0.5 1.7599999904632568 0.0 10.5600004196167\n", "1,173,057,923 CMT 2015-12-31 23:59:58.000000000 2016-01-01 00:05:19.000000000 2 2 2.0 -73.96527099609375 40.76028060913086 1.0 0.0 -73.93951416015625 40.75238800048828 7.5 0.5 0.5 0.0 0.0 8.800000190734863\n", "1,173,057,924 CMT 2015-12-31 23:59:59.000000000 2016-01-01 00:12:55.000000000 2 2 3.799999952316284 -73.98729705810547 40.739078521728516 1.0 0.0 -73.9886703491211 40.69329833984375 13.5 0.5 0.5 0.0 0.0 14.800000190734863\n", "1,173,057,925 VTS 2015-12-31 23:59:59.000000000 2016-01-01 00:10:26.000000000 1 2 1.9600000381469727 -73.99755859375 40.72569274902344 1.0 0.0 -74.01712036132812 40.705322265625 8.5 0.5 0.5 0.0 0.0 9.800000190734863\n", "1,173,057,926 VTS 2015-12-31 23:59:59.000000000 2016-01-01 00:21:30.000000000 1 1 1.059999942779541 -73.9843978881836 40.76725769042969 1.0 0.0 -73.99098205566406 40.76057052612305 13.5 0.5 0.5 2.9600000381469727 0.0 17.760000228881836" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# # Read data from S3\n", "# df = vaex.open('s3://vaex/taxi/yellow_taxi_2009_2015_f32.hdf5?anon=true')\n", "\n", "# Read data from local disk\n", "df = vaex.open('../vaex-taxi/data/yellow_taxi_2009_2015_f32.hdf5')\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: Opening and previewing a 100GB file with Vaex is instant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. No memory copies\n", "\n", "Vaex has a zero memory copy policy. This means that filtering a DataFrames costs very little memory and does not copy the data. Consider the following example." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:36.106131Z", "start_time": "2020-02-14T10:51:27.208332Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
# vendor_id pickup_datetime dropoff_datetime passenger_count payment_type trip_distance pickup_longitude pickup_latitude rate_code store_and_fwd_flag dropoff_longitude dropoff_latitude fare_amount surcharge mta_tax tip_amount tolls_amount total_amount
0 VTS 2009-01-04 02:52:00.0000000002009-01-04 03:02:00.0000000001 CASH 2.630000114440918 -73.9919586181640640.72156524658203 nan nan -73.99380493164062 40.6959228515625 8.899999618530273 0.5 nan 0.0 0.0 9.399999618530273
1 VTS 2009-01-04 03:31:00.0000000002009-01-04 03:38:00.0000000003 Credit 4.550000190734863 -73.9821014404296940.736289978027344nan nan -73.95584869384766 40.76802825927734412.1000003814697270.5 nan 2.0 0.0 14.600000381469727
2 DDS 2009-01-01 20:52:58.0000000002009-01-01 21:14:00.0000000001 CREDIT 5.0 -73.9742660522461 40.79095458984375 nan nan -73.9965591430664 40.73184967041015614.8999996185302730.5 nan 3.049999952316284 0.0 18.450000762939453
3 DDS 2009-01-24 16:18:23.0000000002009-01-24 16:24:56.0000000001 CASH 0.4000000059604645-74.0015792846679740.719383239746094nan nan -74.00837707519531 40.7203483581543 3.700000047683716 0.0 nan 0.0 0.0 3.700000047683716
4 DDS 2009-01-16 22:35:59.0000000002009-01-16 22:43:35.0000000002 CASH 1.2000000476837158-73.9898071289062540.73500442504883 nan nan -73.98502349853516 40.72449493408203 6.099999904632568 0.5 nan 0.0 0.0 6.599999904632568
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1,061,605,165CMT 2015-12-31 23:59:56.0000000002016-01-01 00:09:25.0000000001 1 1.0 -73.9738998413086 40.74289321899414 1.0 0.0 -73.98957061767578 40.75054931640625 8.0 0.5 0.5 1.850000023841858 0.0 11.149999618530273
1,061,605,166CMT 2015-12-31 23:59:58.0000000002016-01-01 00:05:19.0000000002 2 2.0 -73.9652709960937540.76028060913086 1.0 0.0 -73.93951416015625 40.75238800048828 7.5 0.5 0.5 0.0 0.0 8.800000190734863
1,061,605,167CMT 2015-12-31 23:59:59.0000000002016-01-01 00:12:55.0000000002 2 3.799999952316284 -73.9872970581054740.7390785217285161.0 0.0 -73.9886703491211 40.69329833984375 13.5 0.5 0.5 0.0 0.0 14.800000190734863
1,061,605,168VTS 2015-12-31 23:59:59.0000000002016-01-01 00:10:26.0000000001 2 1.9600000381469727-73.99755859375 40.72569274902344 1.0 0.0 -74.01712036132812 40.705322265625 8.5 0.5 0.5 0.0 0.0 9.800000190734863
1,061,605,169VTS 2015-12-31 23:59:59.0000000002016-01-01 00:21:30.0000000001 1 1.059999942779541 -73.9843978881836 40.76725769042969 1.0 0.0 -73.99098205566406 40.76057052612305 13.5 0.5 0.5 2.96000003814697270.0 17.760000228881836
" ], "text/plain": [ "# vendor_id pickup_datetime dropoff_datetime passenger_count payment_type trip_distance pickup_longitude pickup_latitude rate_code store_and_fwd_flag dropoff_longitude dropoff_latitude fare_amount surcharge mta_tax tip_amount tolls_amount total_amount\n", "0 VTS 2009-01-04 02:52:00.000000000 2009-01-04 03:02:00.000000000 1 CASH 2.630000114440918 -73.99195861816406 40.72156524658203 nan nan -73.99380493164062 40.6959228515625 8.899999618530273 0.5 nan 0.0 0.0 9.399999618530273\n", "1 VTS 2009-01-04 03:31:00.000000000 2009-01-04 03:38:00.000000000 3 Credit 4.550000190734863 -73.98210144042969 40.736289978027344 nan nan -73.95584869384766 40.768028259277344 12.100000381469727 0.5 nan 2.0 0.0 14.600000381469727\n", "2 DDS 2009-01-01 20:52:58.000000000 2009-01-01 21:14:00.000000000 1 CREDIT 5.0 -73.9742660522461 40.79095458984375 nan nan -73.9965591430664 40.731849670410156 14.899999618530273 0.5 nan 3.049999952316284 0.0 18.450000762939453\n", "3 DDS 2009-01-24 16:18:23.000000000 2009-01-24 16:24:56.000000000 1 CASH 0.4000000059604645 -74.00157928466797 40.719383239746094 nan nan -74.00837707519531 40.7203483581543 3.700000047683716 0.0 nan 0.0 0.0 3.700000047683716\n", "4 DDS 2009-01-16 22:35:59.000000000 2009-01-16 22:43:35.000000000 2 CASH 1.2000000476837158 -73.98980712890625 40.73500442504883 nan nan -73.98502349853516 40.72449493408203 6.099999904632568 0.5 nan 0.0 0.0 6.599999904632568\n", "... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", "1,061,605,165 CMT 2015-12-31 23:59:56.000000000 2016-01-01 00:09:25.000000000 1 1 1.0 -73.9738998413086 40.74289321899414 1.0 0.0 -73.98957061767578 40.75054931640625 8.0 0.5 0.5 1.850000023841858 0.0 11.149999618530273\n", "1,061,605,166 CMT 2015-12-31 23:59:58.000000000 2016-01-01 00:05:19.000000000 2 2 2.0 -73.96527099609375 40.76028060913086 1.0 0.0 -73.93951416015625 40.75238800048828 7.5 0.5 0.5 0.0 0.0 8.800000190734863\n", "1,061,605,167 CMT 2015-12-31 23:59:59.000000000 2016-01-01 00:12:55.000000000 2 2 3.799999952316284 -73.98729705810547 40.739078521728516 1.0 0.0 -73.9886703491211 40.69329833984375 13.5 0.5 0.5 0.0 0.0 14.800000190734863\n", "1,061,605,168 VTS 2015-12-31 23:59:59.000000000 2016-01-01 00:10:26.000000000 1 2 1.9600000381469727 -73.99755859375 40.72569274902344 1.0 0.0 -74.01712036132812 40.705322265625 8.5 0.5 0.5 0.0 0.0 9.800000190734863\n", "1,061,605,169 VTS 2015-12-31 23:59:59.000000000 2016-01-01 00:21:30.000000000 1 1 1.059999942779541 -73.9843978881836 40.76725769042969 1.0 0.0 -73.99098205566406 40.76057052612305 13.5 0.5 0.5 2.9600000381469727 0.0 17.760000228881836" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_filtered = df[(df.passenger_count>0) & (df.passenger_count<5)]\n", "df_filtered" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: Filtering a Vaex DataFrame does not copy the data and takes negligible amount of memory." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The creation of the `df_filtered` DataFrame takes no extra memory! This is because `df_filtered` is a _shallow_ copy of `df`. When creating filtered DataFrames, Vaex creates a binary mask which is then applied to the original data, without the need to make copies. The memory costs for these kind of filters are low: one needs ~1.2 GB of RAM to filter a 1 billion row DataFrame. This is negligible compared to other \"classical\" tools where one would need 100GB to simply read in the data, and another ~100GB for the filtered DataFrame." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Virtual columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Transforming existing columns of a Vaex DataFrame into new ones results in the creation of _virtual columns_. Virtual columns behave just like normal ones, but they take up no memory what so ever. This is because Vaex only remembers the _expression_ the defines them, and does not calculate the values up front. These columns are lazily evaluated only when necessary, keeping memory usage low." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:44.105206Z", "start_time": "2020-02-14T10:51:44.094212Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
# fare_amount total_amount tip_amount tip_percentage
0 8.9 9.4 0 0
1 12.1 14.6 2 13.6986
2 23.7 28.44 4.74 16.6667
3 14.9 18.45 3.05 16.5312
4 3.7 3.7 0 0
" ], "text/plain": [ " # fare_amount total_amount tip_amount tip_percentage\n", " 0 8.9 9.4 0 0\n", " 1 12.1 14.6 2 13.6986\n", " 2 23.7 28.44 4.74 16.6667\n", " 3 14.9 18.45 3.05 16.5312\n", " 4 3.7 3.7 0 0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['tip_percentage'] = df.tip_amount / df.total_amount * 100\n", "df[['fare_amount', 'total_amount', 'tip_amount', 'tip_percentage']].head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: The \"tip_percentage\" column is a virtual column: it take no extra memory and is lazily evaluated on the fly when needed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Performance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vaex is _fast_. I mean _seriously fast_. The evaluation of virtual columns is fully parallelized and done with one pass over the data. Column methods such as \"value_counts\", \"groupby\" , \"unique\" and the various string operations are using fast and efficient algoithms, implemented in C++ under the hood. All of them work in an out-of-core fashion, meaning you can process much more data than you fit into RAM, and use all available cores of your processor. For example, doing a \"value_counts\" operation takes only a second for over 1 billion rows!" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:51:52.994399Z", "start_time": "2020-02-14T10:51:52.273518Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b1e0f515814a47ffb0d9027c34a70ffd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), Label(value='In progress...')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1 812321234\n", "2 172864560\n", "5 81923912\n", "3 51435890\n", "6 25614703\n", " ... \n", "69 1\n", "66 1\n", "61 1\n", "53 1\n", "70 1\n", "Length: 62, dtype: int64" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.passenger_count.value_counts(progress='widget')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: Using Vaex, the \"value_counts\" operation takes ~1s for over _1.1 billion rows!_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. Just-In-Time Compilation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. No memory copies\n", "\n", "Vaex has a zero memory copy policy. This means that filtering DataFrame costs very little memory and does not copy the data. Consider the following example." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As long as a virtual column is defined only using [Numpy](https://numpy.org/) or pure Python operations, Vaex can accelerate its evaluation by jitting, or Just-In-Time compilation via [Numba](http://numba.pydata.org/) or [Pythran](https://pythran.readthedocs.io/en/latest/). Vaex also supports acceleration via [CUDA](https://developer.nvidia.com/cuda-zone) if your machine has a CUDA enabled NVIDIA graphics card. This can be quite useful for speeding up the evaluation of rather computationally expensive virtual columns. \n", "\n", "Consider the example below. I have defined the arc distance between two geographical locations, a calculation that involves quite some algebra and trigonometry. Calculating the mean value will force the execution of this rather computationally expensive virtual column. When the execution is done purely with Numpy, it takes only 30 seconds, which I find impressive given that it is done for over **1.1 billion rows**. Now, when we do the same with the numba pre-compiled expression, we get ~2.5 times faster execution time, at least on my laptop. Unfortunately, I do not have an NVIDIA graphics card so I can not do the same using CUDA at this time. If you do, I'll be very happy if you could try this out and share the results.\n", "\n", "A small but important bonus: Notice how you do not need to call `.compute` or any such method - Vaex automatically knows when to be lazy and when execute a computation." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:52:44.836057Z", "start_time": "2020-02-14T10:52:02.107778Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b2c9bc4c513c4b42a76a5dd90bd4df87", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), Label(value='In progress...')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b9531b2b9fe2425489acf4bd0b296c63", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), Label(value='In progress...')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Mean arc distance comuted with numpy: 12.70720\n", "Mean arc distance comuted with numba: 12.70720\n" ] } ], "source": [ "def arc_distance(theta_1, phi_1, theta_2, phi_2):\n", " temp = (np.sin((theta_2-theta_1)/2*np.pi/180)**2\n", " + np.cos(theta_1*np.pi/180)*np.cos(theta_2*np.pi/180) * np.sin((phi_2-phi_1)/2*np.pi/180)**2)\n", " distance = 2 * np.arctan2(np.sqrt(temp), np.sqrt(1-temp))\n", " return distance * 3958.8\n", "\n", "# Expression to be evaluated with numpy as usual\n", "df['arc_distance_numpy'] = arc_distance(df.pickup_longitude, \n", " df.pickup_latitude, \n", " df.dropoff_longitude, \n", " df.dropoff_latitude)\n", "\n", "# Expression to be pre-compiled with numba, and then executed\n", "df['arc_distance_numba'] = arc_distance(df.pickup_longitude, \n", " df.pickup_latitude, \n", " df.dropoff_longitude, \n", " df.dropoff_latitude).jit_numba()\n", "\n", "# Expression to be pre-compiled with CUDA, and then executed on you GPU \n", "# provided you have a CUDA compatible NVIDIA GPU.\n", "# df['arc_distance_cuda'] = arc_distance(df.pickup_longitude, \n", "# df.pickup_latitude, \n", "# df.dropoff_longitude, \n", "# df.dropoff_latitude).jit_cuda()\n", "\n", "# Calculate the mean \n", "mean_numpy = df.arc_distance_numpy.mean(progress='widget')\n", "mean_numba = df.arc_distance_numba.mean(progress='widget')\n", "print(f'Mean arc distance comuted with numpy: {mean_numpy:.5f}')\n", "print(f'Mean arc distance comuted with numba: {mean_numba:.5f}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: Jitting can lead to ~2.5 time faster execution times for a computationally expensive virtual column." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6. Selections\n", "\n", "Vaex implements a concept called _selections_ which is used to, ah, select the data. This is useful when you want to explore the data by, for example, calculating statistics on different portions of it without making a new reference DataFrame each time. The true power of using selections is that we can calculate a statistic for multiple selections with just one pass over the data." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:53:35.752782Z", "start_time": "2020-02-14T10:53:28.969348Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8ceafb99faa04685ab3607dbce998e4c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), Label(value='In progress...')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "array([11.21730816, 11.2078196 , 11.26832503])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "select_n_passengers_lt3 = df.passenger_count < 3\n", "select_n_passengers_ge3 = df.passenger_count >= 3\n", "\n", "df.fare_amount.mean(selection=[None, select_n_passengers_lt3, select_n_passengers_ge3], progress='widget')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: You can calculate statistics for multiple selections with one pass over the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This can be be also useful for making various visualisations. For example, we can use the `.count` method to create a couple of histograms on different selections with just one pass over the data. Quite efficient!" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:53:46.734642Z", "start_time": "2020-02-14T10:53:40.557183Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f421ff08b7c64c7da1b7d7cba2c48ee4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), Label(value='In progress...')))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAewAAAEVCAYAAAAit9axAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXzU1bnH8c9DIGwJCGWRHVnCIhKWqIDKVjRYWritxovClShiKaggLWUTFEpECyKiXqpWEVmEaqW1gIioiK0GDRQtssseROAqKois5/4xkzGBmckkzEwy5Pt+vfLKzG87z/yUPHOW3znmnENERESKt1JFHYCIiIjkTwlbREQkBihhi4iIxAAlbBERkRighC0iIhIDlLBFRERiQLFP2Gb2gpkdNLMNIRz7uJmt9/5sNbMj0YhRREQk0qy4P4dtZp2Bo8BLzrlWBTjvXqCtc+7OiAUnIiISJcW+hu2cWw18lXubmTU2s+VmttbM3jez5n5OvRV4OSpBioiIRFjpog6gkJ4FBjvntpnZ1cD/At1zdppZA+Ay4J0iik9ERCSsYi5hm1kC0Al4xcxyNpc957C+wKvOuTPRjE1ERCRSYi5h42nGP+KcaxPkmL7A0CjFIyIiEnHFvg/7XM65b4GdZpYGYB7JOfvNrBlQBfiwiEIUEREJu2KfsM3sZTzJt5mZ7TOzgUA/YKCZfQJ8BvTJdcqtwEJX3Ie/i4iIFECxf6xLREREYqCGLSIiIsV80Fm1atVcw4YNizoMERGRqFi7du1h51x1f/uKdcJu2LAhWVlZRR2GiIhIVJjZ7kD71CQuIiISA5SwRUREYoAStoiISAxQwhYREYkBStgiIiIxoFiPEheR2PHtt99y8OBBTp06VdShiBRLZcqUoUaNGlSqVKlQ5ythi8gF+/bbb/nyyy+pU6cO5cuXJ9dKeiICOOc4fvw42dnZAIVK2iU+YT+3egczVm7l2En/K3FWjI9jeI8kBnVuFOXIRGLHwYMHqVOnDhUqVCjqUESKJTOjQoUK1KlTh/379xcqYZf4PuxgyRrg2MkzzFi5NYoRicSeU6dOUb58+aIOQ6TYK1++fKG7jUp8wg6WrAtyjEhJp2ZwkfxdyL+TEt8kntuuR3rled9w9NIiikRERCSvEl/DFhERiQVK2CIiIjFACVtERCSAV155hZSUFC655BIqVqxImzZtmDNnTpHEoj5sEREp9k6fPk1cXFzYBzceOnSIxMREypUr53f/T37yEx544AGaN29OmTJlWLJkCQMHDqR69er87Gc/C2ss+VENW0RKrK5duzJkyBDGjh1LtWrVqFGjBr/73e84e/as75iGDRsybdq0886755578hwzadIk0tPTSUxMpF69eixatIgjR47Qt29fEhISaNq0KStWrMg3nsGDBzNs2DCqVKlClSpVGDlyZJ545s2bx5VXXkliYiI1atQgLS3NNxkHeB6xu++++6hduzZly5alXr16jB492rf/tddeo3Xr1pQvX56qVavSpUsXvvzyS9/+f/zjH7Rv355y5cpx2WWXMW7cOE6ePJnns06ePJlf//rXVKpUibp16zJ16tQ8n2Pr1q106dKFcuXK0axZM5YtW0ZCQgIvvvii75js7Gz69u3r+5y9evVi27Ztvv0PPfQQrVq14sUXX6Rx48aULVuWY8eOsXr1ajp06EBCQgKVK1fm6quvZsOGDUHv67lOnjzJX//6V/r06UPt2rXzfP5zde/enf/6r/+iefPmNG7cmGHDhtG6dWvef//9ApUZDlGrYZtZM2BRrk2NgAnOuRnRikFEoqcon7I494mPYObPn8+wYcP44IMPWL9+Pbfddhvt27fn1ltvLVCZM2bMYPLkyYwbN44//elPDBgwgO7du9O3b18mT57MlClT6N+/P3v27AlYm8uJJz09nQ8//JBPP/2UQYMGUatWLUaMGAF4ks3EiRNp3rw5hw8fZtSoUdx6662sXr0agJkzZ7J48WIWLlxIw4YN2bdvH1u2bAHgwIED9O3blylTpnDTTTdx9OhRMjMzfWW/+eab9OvXjyeeeILOnTuzZ88eBg8ezIkTJ/J8aXn88ceZOHEiI0eO5I033uC+++7j2muvpWPHjpw9e5Zf/vKXXHrppWRmZnL8+HGGDx/OiRMnfOd///33dOvWjU6dOvHee+8RHx/PtGnT6NGjB5s2bfJNwLNz504WLFjAK6+8Qnx8POXKlaNPnz4MHDiQ+fPnc+rUKdatW0dcXFxI/43WrFnDnDlzWLRoEWXKlOHWW29lzZo1NGjQIKTznXO88847bNmyhYyMjJDOCaeoJWzn3BagDYCZxQHZwOJolS8i4k/Lli2ZNGkSAElJSTz33HO8/fbbBU7YqampDBkyBICJEycyffp0mjRpwu233w7A+PHjeeGFF9iwYQMpKSkBr1OrVi1mzpyJmdG8eXO2bt3K9OnTfQn7zjvv9B3bqFEjZs2aRYsWLdi3bx9169Zl9+7dJCUlcd1112Fm1K9fn06dOgGwf/9+Tp06xc033+xLUq1atfJdLyMjg5EjR3LHHXcA0LhxYx599FH69+/P1KlTfc3RN9xwg6+F4d5772XmzJm8/fbbdOzYkbfeeostW7awYsUK6tSpA3gS/DXXXOMrZ+HChTjnmD17tu+azzzzDDVq1GDJkiXccsstgOfLydy5c6lZsyYAX331FUeOHOEXv/gFjRs3BqB58+ZB/7vs27ePl156iZdeeok9e/bQp08f5s6dS2pqasiJ/ptvvqFOnTqcOHGCuLg4nn76aW688caQzg2nomoS/ynwuXNudxGVLyICQOvWrfO8r127NgcPHryg6yQkJFChQgWuuOIK37acpJPftTt06JCnn7Zjx45kZ2fz7bffArBu3Tr69OlDgwYNSExM9CX/PXv2AJCens769etJSkpi6NChLF261NeknpycTI8ePWjVqhU33XQTs2bN4tChQ76y1q5dS0ZGBgkJCb6f2267jWPHjnHgwAG/nxXy3rPNmzdTu3ZtX7IGuPLKKylV6sd0s3btWnbu3EliYqKvnMqVK/P111/z+eef+46rW7eu774BVK1alfT0dFJTU+nVqxfTp09n7969Qe/nAw88wLhx42jWrBl79uzh5Zdf5mc/+1nIyRogMTGR9evX8/HHH5ORkcGIESN4++23Qz4/XIpq0Flf4OUiKltEoqAgzdJFqUyZMnnem1mePuNSpUrhnMtzjL+pJf1dJ/e2nCSc+9oFdezYMVJTU+nRowdz586lRo0aHD58mOuuu87Xz9yuXTt27drF8uXLeeeddxgwYADJycm89dZbxMXFsWLFCjIzM1mxYgXPP/88Y8aM4b333iM5OZmzZ8/y4IMPkpaWdl7Z1atXD/pZcz6Xcy7fgWFnz56lTZs2LFy48Lx9VatW9b2uWLHieftnz57N8OHDWb58Oa+//jrjxo3jb3/7G6mpqX7LeuCBB6hVqxbz5s2jWbNm3HLLLfTv3z9PjT8/pUqVokmTJgC0adOGTZs28fDDD/PTn/405GuEQ9Rr2GYWD/QGXgmw/24zyzKzrNzf/EREikL16tX54osvfO9/+OEHNm/eHLHy1qxZk+cLQmZmJrVr16ZSpUps3ryZw4cP8/DDD9O5c2eaN2/ut8aemJhIWloas2bNYunSpbzzzjts374d8CTXjh078uCDD/Lxxx9Tu3ZtFi3yDC9q164dmzdvpkmTJuf9lC4dWv2uRYsWZGdns3//ft+2rKysPF9U2rVrx/bt26lWrdp55eRO2IEkJyczatQoVq1aRdeuXYM+ZtWkSROmTJnC7t27WbRoEUePHiU1NZXGjRszYcIEtm4t+FoRZ8+ezdMnHy1F0SR+I7DOOed3WJ5z7lnnXIpzLiX3NzoRkaLQvXt35s+fz6pVq/jss8+48847I7rm9/79+xk+fDhbtmzh1VdfZerUqdx///0A1K9fn7Jly/LUU0+xY8cOli5dyvjx4/OcP336dF5++WU2bdrE9u3bWbBggW80d2ZmJpMnT+bjjz9mz549vP766+zdu5eWLVsCMGHCBBYsWMCECRPYsGEDmzdv5tVXX+X3v/99yPFff/31NGvWjAEDBvDJJ5+QmZnJiBEjKF26tK/m3a9fP2rWrEmfPn1477332LlzJ6tXr+a3v/1tnpHi59q5cyejR4/mgw8+YPfu3bz77rt8+umnvviDKVWqlK9l4sCBA4wfP55//vOftGjRwted4E9GRgYrV65kx44dbNq0iccee4y5c+fSv3//kO9JuBRFk/itqDlcRGLEmDFj2LVrF3369CEhIYFx48blqT2GW79+/Thz5gxXX301ZsbAgQN9Cbt69erMmTOHsWPH8vTTT9O6dWumT59Oz549fecnJiYydepUtm3bhpnRtm1b3njjDSpUqEDlypX517/+xZNPPsmRI0eoV68e48eP9yWf1NRUli5dyh/+8AemTZtG6dKlSUpKIj09PeT4S5UqxeLFi7nrrru46qqraNiwIY899hi/+tWvfKPjK1SowOrVqxk9ejRpaWl888031K5dm27dulGlSpWA165QoQJbt24lLS2Nw4cPU7NmTfr168eoUaMKdI8TEhJIT08nPT2d3bt3U61atYDHHj16lN/85jfs27eP8uXL07x5c1566aUCD0oMBzu3byaihZlVAPYCjZxz3+R3fEpKisvKyopoTLkfPQm2+Ees9MeJFIVNmzbRokWLog4j5nXt2pVWrVrx1FNPFXUoYfXJJ5/Qpk0bsrKyaN++fVGHU+SC/Xsxs7XOOb+PEUS1hu2c+x74STTLjITnVu8Iuo52xfg4hvdIYlDnRlGOTESk6C1evJiKFSvStGlTdu3axYgRI0hOTqZdu3ZFHVpM00xnhRAsWYNn/ewZKws+kEFE5GLw3Xffcc8999CyZUv69etHixYtePPNN7Vm+gXSXOKFECxZF+QYEZHcVq1aVdQhhMXtt9/umzBGwkcJ+wIF6/cWEREJFzWJi4iIxAAlbBERkRighC0iIhID1IcdIvVNi4hIUVINO4iK8cFXc8lvv4iISLgoYQcxvEdSwKScMzmKiIhINKhJPIhBnRtptjIREfFr48aNDB06lI0bN/rmQ+/bty8PPfQQ8fHxYS9PCVtERIq906dPExcXV+DZ0vbt20edOnUiMstafHw8AwYMoG3btlxyySV88sknDBo0iNOnT/PHP/4x7OWpSVxESqyuXbsyZMgQxo4dS7Vq1ahRowa/+93v8qzd3LBhQ6ZNm3beeffcc0+eYyZNmkR6ejqJiYnUq1ePRYsWceTIEfr27UtCQgJNmzZlxYoV+cYzePBghg0bRpUqVahSpQojR47ME8+8efO48sorSUxMpEaNGqSlpZGdne3bf+rUKe677z5q165N2bJlqVevHqNHj/btf+2112jdujXly5enatWqdOnShS+//HG143/84x+0b9+ecuXKcdlllzFu3DhOnjyZ57NOnjyZX//6175lO6dOnZrnc2zdupUuXbpQrlw5mjVrxrJly0hISODFF1/0HZOdnU3fvn19n7NXr155ltZ86KGHaNWqFS+++CKNGzembNmyHDt2jNWrV9OhQwcSEhKoXLkyV199NRs2bAh4T8ePH0+jRo2YMGGCb03wcGnSpAnp6ekkJyfToEEDevfuTb9+/Xj//ffDWk4O1bBFJDIeqlyEZee7GKDP/PnzGTZsGB988AHr16/ntttuo3379gVePnHGjBlMnjyZcePG8ac//YkBAwbQvXt3+vbty+TJk5kyZQr9+/dnz549vmUmA8WTnp7Ohx9+yKeffsqgQYOoVasWI0aMAODkyZNMnDiR5s2bc/jwYUaNGsWtt97K6tWrAZg5cyaLFy9m4cKFNGzYkH379rFlyxYADhw4QN++fZkyZQo33XQTR48eJTMz01f2m2++Sb9+/XjiiSfo3Lkze/bsYfDgwZw4cSLPl5bHH3+ciRMnMnLkSN544w3uu+8+rr32Wjp27MjZs2f55S9/yaWXXkpmZibHjx9n+PDhnDhxwnf+999/T7du3ejUqRPvvfce8fHxTJs2jR49erBp0yYqVKgAeNa/XrBgAa+88grx8fGUK1eOPn36MHDgQObPn8+pU6dYt24dcXGBBwDPnDmTV199lblz55KRkUGHDh0YMGAAt9xyC5dccsl5x19++eXs3r074PUaNGjAZ5995nff9u3bWb58Ob179w54/oVQwhaREq1ly5ZMmjQJgKSkJJ577jnefvvtAifs1NRUhgwZAsDEiROZPn06TZo08c2pPX78eF544QU2bNhASorf1RMBqFWrFjNnzsTMaN68OVu3bmX69Om+hH3nnXf6jm3UqBGzZs2iRYsW7Nu3j7p167J7926SkpK47rrrMDPq169Pp06dANi/fz+nTp3i5ptvpkGDBgC0atXKd72MjAxGjhzJHXfcAUDjxo159NFH6d+/P1OnTvU1K99www2+FoZ7772XmTNn8vbbb9OxY0feeusttmzZwooVK6hTpw7gSfDXXHONr5yFCxfinGP27Nm+az7zzDPUqFGDJUuWcMsttwCeLydz586lZs2aAHz11VccOXKEX/ziFzRu3BiA5s2bB/3vkpiYyB133MEdd9zB3r17mTdvHjNmzGDYsGH07t2bAQMG0LNnT0qV8jQ4L1u2jFOnTgW8XpkyZc7b1qlTJ9atW8eJEycYNGgQDz/8cNCYCktN4iJSorVu3TrP+9q1a3Pw4MELuk5CQgIVKlTgiiuu8G3LSTr5XbtDhw55+ls7duxIdnY23377LQDr1q2jT58+NGjQgMTERF/y37NnDwDp6emsX7+epKQkhg4dytKlS31N6snJyfTo0YNWrVpx0003MWvWLA4dOuQra+3atWRkZJCQkOD7ue222zh27BgHDhzw+1kh7z3bvHkztWvX9iVrgCuvvNKXEHPK2blzJ4mJib5yKleuzNdff83nn3/uO65u3bq++wZQtWpV0tPTSU1NpVevXkyfPp29e/cGvZ+51atXjzFjxrBx40Zmz57Nm2++Sa9evXz3Djw16CZNmgT8yfmik9uiRYtYt24dCxYsYNmyZTz66KMhx1QQqmGLSGQUoFm6KJ1bYzKzPH3GpUqVwjmX5xh/NTB/18m9LScJ5752QR07dozU1FR69OjB3LlzqVGj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "binned_dist_npass_lt3, binned_dist_npass_ge3 = df.count(binby=['total_amount'],\n", " limits=[5, 50],\n", " shape=64,\n", " selection=[select_n_passengers_lt3, \n", " select_n_passengers_ge3], \n", " progress='widget')\n", "\n", "xvalues = np.linspace(5, 50, 64)\n", "plt.figure(figsize=(8, 4))\n", "plt.plot(xvalues, binned_dist_npass_lt3, drawstyle=\"steps-pre\", label='num passengers < 3', lw=3)\n", "plt.plot(xvalues, binned_dist_npass_ge3, drawstyle=\"steps-pre\", label='num passengers >=3', lw=3)\n", "plt.legend(fontsize=14)\n", "plt.xlabel('Total amount [$]', fontsize=14)\n", "plt.ylabel('Number of trips', fontsize=14)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: One can create multiple histograms on different selections with just one pass over the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7. Groupby aggregations with selections\n", "\n", "One of my favourite features of [Vaex](https://github.com/vaexio/vaex) is the ability to use selections inside aggregation functions. I often find myself wanting to do a group-by operation, in which the aggregations follow some additional rule or filter. The SQL-esque way of doing this would be to run several separate queries in which one would first filter the data and then do the group-by aggregation, and later join the outputs of those aggregations into one table. With Vaex, one can do this with a single operation, and with just one pass over the data! The following group-by example, ran on over 1.1 billion rows takes only 30 seconds to execute on my laptop!" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2020-02-14T10:55:26.617858Z", "start_time": "2020-02-14T10:54:56.586569Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
# vendor_id count count_fare_n_pass_lt3 count_fare_n_pass_ge3 mean_fare_n_pass_lt3 mean_fare_n_pass_ge3
0CMT 5.71882e+08 5.37345e+08 3.4537e+07 11.0698 11.917
1DDS 1.41691e+07 1.30247e+07 1.14446e+06 10.3088 10.8373
2VTS 5.87007e+08 4.38728e+08 1.48279e+08 11.4036 11.1206
" ], "text/plain": [ " # vendor_id count count_fare_n_pass_lt3 count_fare_n_pass_ge3 mean_fare_n_pass_lt3 mean_fare_n_pass_ge3\n", " 0 CMT 5.71882e+08 5.37345e+08 3.4537e+07 11.0698 11.917\n", " 1 DDS 1.41691e+07 1.30247e+07 1.14446e+06 10.3088 10.8373\n", " 2 VTS 5.87007e+08 4.38728e+08 1.48279e+08 11.4036 11.1206" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.groupby(by='vendor_id', agg={'count': vaex.agg.count(),\n", " 'count_fare_n_pass_lt3': vaex.agg.count(selection='passenger_count<3'),\n", " 'count_fare_n_pass_ge3': vaex.agg.count(selection='passenger_count>=3'),\n", " 'mean_fare_n_pass_lt3': vaex.agg.mean('fare_amount', selection='passenger_count<3'),\n", " 'mean_fare_n_pass_ge3': vaex.agg.mean('fare_amount', selection='passenger_count>=3'),\n", " })" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Caption: Selections can be used inside groupby aggregation functions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bonus: Progress bars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking at the examples above, you may have noticed many of the methods implemented in Vaex are accompanied by a progress bar. I absolutely love this feature! Since I often use Vaex with larger datasets, knowing how long an operation is likely to take is very handy. Besides, it looks pretty and it makes me feel good as a user :)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Conclusion\n", "\n", "Vaex is a rather powerful DataFrame library, especially when it comes to larger datasets. It has a variety of useful methods for data manipulation and visualization. These are just my top 7 reasons why I like working with this library. What are yours?" ] } ], "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" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "00221b86a37e44599bafe1536fe73ad3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "00a16fee86284ba88ad04db92a9655a5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_e00c8ba24146470ebeed118ef6fcde27", "style": "IPY_MODEL_34715d8625654697839587f86726288e", "value": " 100.00% elapsed time : 33.73s = 0.6m = 0.0h cpu: 621%" } }, "00f5fef506dc4f4f8170f64bd6057ca1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_013d04fbe83e4741b87b4dd7904156e5", "IPY_MODEL_00a16fee86284ba88ad04db92a9655a5" ], "layout": "IPY_MODEL_24bc815ceb8c44e0ad237008691968b0" } }, "00f6f385d0c44d0dae1c94ec9dac2a97": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "013d04fbe83e4741b87b4dd7904156e5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_0760c39aa3e646a28d1f39980c0db307", "max": 1, "style": "IPY_MODEL_aba7888e4c12434bb956b2ab4c4e07cd", "value": 1 } }, "01b9a7bf1c2c4bdbbe8b933cab9daee7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_073082b6dd7846d29b7aec6570e08916", "max": 1, "style": "IPY_MODEL_0d1b5e95fb514f958fc6211cfc4eba45", "value": 1 } }, "038a63f97a0646498fc0d85b2de124e8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "03eec33c68624212b2b33ffa2cbed03c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_f6e4add5240b48f196cbcc8112166a01", "style": "IPY_MODEL_61a3f27cc8d24369a17ac76c2d624b45", "value": " 100.00% elapsed time : 12.76s = 0.2m = 0.0h cpu: 1101%" } }, "0516b216b06d46d8a158c9d4927e66b7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "05de525ceda84f4390c303b97f477323": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "06a7132949614c64bc244ee6050ea022": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_931d71970d9d40d0b57885078316de18", "max": 1, "style": "IPY_MODEL_b83bf52d93a64347bcf8032ec34341e8", "value": 1 } }, "073082b6dd7846d29b7aec6570e08916": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0742959cf1694c7b9f46fc8a07d0deb8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_421342c7f0cc4756b906af7c81f73472", "style": "IPY_MODEL_0a57f97e34ba49c08ac06d540fc6ca04", "value": " 100.00% elapsed time : 12.81s = 0.2m = 0.0h cpu: 1145%" } }, "0760c39aa3e646a28d1f39980c0db307": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "07ab1bb8a46a497caf3aa66e83ded229": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "07c31800c3ff4f5da4e8a725a3f241a4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0833c2923af74671973f874fcf788b01": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_08eda983908c46a598276067a1a42d60", "style": "IPY_MODEL_8263cbaa9f574e7daae40f12eb3e70c1", "value": " 100.00% elapsed time : 12.53s = 0.2m = 0.0h cpu: 1136%" } }, "08e9a67929a64fa7a3a9f14a1b2ff123": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "08eda983908c46a598276067a1a42d60": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0a0f12d5a81a47dcac49865ee4d660f0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_2cba88f64dd340eca95abd25c3ef64d4", "max": 1, "style": "IPY_MODEL_9858ff13856a4a15bb5801b0b7494e3d", "value": 1 } }, "0a3512db3fe044ba8bdc56dbdf75f455": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0a57f97e34ba49c08ac06d540fc6ca04": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0af4d94abe6a4692b7956a9cbc17f49b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_ef199f37c4e0495eb24c26c279d03289", "style": "IPY_MODEL_43a28bc4565d4b6aad08f3b9bc36227a", "value": " 100.00% elapsed time : 12.85s = 0.2m = 0.0h cpu: 1139%" } }, "0d1b5e95fb514f958fc6211cfc4eba45": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "0e9727d90d6d4568bb276f59044e45e2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "0effba6449384a1d9a1e8c22fa4ebcde": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0faef9d69a22417394f59cb7ab126333": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "10a9df2f76e34fa39dead2533c4d39da": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "11185b76e131467c86d7772356317f72": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "12bbd41a6b454c24a9122c64daa7bd22": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_8e4bdb6e1f12434ea4d2d566eea69a21", "max": 1, "style": "IPY_MODEL_60ff101447b54f04b94dcdefece31dcd", "value": 1 } }, "131212b053044ea5b7510af01b792b47": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_35fd2844380d4251bf3d06ba12dc93d4", "style": "IPY_MODEL_3622228c9a12465a8aeb2947f62191a0", "value": " 100.00% elapsed time : 17.76s = 0.3m = 0.0h cpu: 327%" } }, "17aaadc3d33b497cbe8a2cd8ca99c8bc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "17c43d6d9bbd49eaa2302a5ee89af71b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "17cdc7b23332446ebb1ec0b9f54bb44f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_758c25ab1cc34580bc3fb0666be9d6bd", "style": "IPY_MODEL_793d3f91963648a3a1a0526546a38bc9", "value": " 100.00% elapsed time : 38.21s = 0.6m = 0.0h cpu: 524%" } }, "187f011bec2441c58d6737a50c73ccdb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_aab6341dd68c43a69da5c9656cc391dd", "style": "IPY_MODEL_27de62671041458aa86649173393bc28", "value": " 100.00% elapsed time : 0.71s = 0.0m = 0.0h cpu: 1119%" } }, "1946a39e40b0463ba57666e256ebc848": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_86090db4d8ce45a1a424cf76a3c65385", "max": 1, "style": "IPY_MODEL_766b36b281674cbbbbe5664758ebaa6c", "value": 1 } }, "1c316d0c9bb740288e8f193cedc32e86": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_0effba6449384a1d9a1e8c22fa4ebcde", "style": "IPY_MODEL_559a63e181cd4246b655c293b508b0e7", "value": " 100.00% elapsed time : 0.71s = 0.0m = 0.0h cpu: 1120%" } }, "1c35727448754af2abb5ef3fd8c0ad5b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1e1471c59e7747c3a5a0d43e07d2ce5a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_409fa804d70443f69dadff0073207c8d", "IPY_MODEL_42f2f2bac6364bdcb4ca4f4f93df37d6" ], "layout": "IPY_MODEL_61f7579f84a241a9a8ecb2fc05006c5c" } }, "1f73089f56244922af5127d0dabb6b7d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1fd6cc50554c4ccf9ad92f2e78c6011a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_e0557b18a75c4111925762c2224b2bd8", "max": 1, "style": "IPY_MODEL_f72100e8217f4b718bdafde6561fe4d4", "value": 1 } }, "21ef644ee65d49359ed02a29199b0e47": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "2230558f090249c0816bbc27dbb41579": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2233537e6b85408bb2b2957ecf0915b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_17aaadc3d33b497cbe8a2cd8ca99c8bc", "max": 1, "style": "IPY_MODEL_0faef9d69a22417394f59cb7ab126333", "value": 1 } }, "22fda3a439cf4204872aa345e5447c65": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "23747e170d29433b83678673387ac150": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "24693c12d9794be09d8c654489fca39c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "24bc815ceb8c44e0ad237008691968b0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "25622fc49ad6408a8aa4f57ce7239c4e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_69b1a48495054194acd13b77ef7c25d6", "style": "IPY_MODEL_340eaaee4ebf400f8db83ef0c5f2ad6d", "value": " 100.00% elapsed time : 30.69s = 0.5m = 0.0h cpu: 569%" } }, "27179006c7dd49d4a811ac3fda56607d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_ff3fd3f23df944d28a2e4cd6ac313427", "style": "IPY_MODEL_5b17e42f88e444d6a559b24425a79109", "value": " 100.00% elapsed time : 12.85s = 0.2m = 0.0h cpu: 1143%" } }, "27207d24a4044609812521335ae62790": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_cd8da2311de74985b4e25bd29679dc01", "max": 1, "style": "IPY_MODEL_de71f58947ad4e6ba67fa6a0278e8e55", "value": 1 } }, "27de62671041458aa86649173393bc28": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2a5a6718948a49dca24e83b081858d5e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_d10c6a07572344f2a9b338998e87fb1b", "style": "IPY_MODEL_5354b0c2d0b942a7a6b5d7af2ee67989", "value": " 100.00% elapsed time : 0.72s = 0.0m = 0.0h cpu: 1109%" } }, "2c1f6ca9964644fa99841ed010c879a3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_3ba8db971abd41d79459392eef214ac1", "IPY_MODEL_1c316d0c9bb740288e8f193cedc32e86" ], "layout": "IPY_MODEL_db4495a19c90419fa8055f77fe0126c1" } }, "2c2c4990ea554eeaae5d24f0daba8964": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2cba88f64dd340eca95abd25c3ef64d4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2cbd0cfc2c754580a7106af72e0f7f09": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_4d7444ff32f040f98784a2db37280141", "max": 1, "style": "IPY_MODEL_ca839e525a1a42068debd670b5198e64", "value": 1 } }, "2cf439d724cc4243bff65181efdc2241": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2dbcc28812b04fd2a3714dfa9ff6ea7b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2dcd5541668f43eab442eb69da0d2509": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_edd4df9fecc24c19ade14591e1fb9234", "IPY_MODEL_b3b9212ad3d046388333ebcdeb4869ef" ], "layout": "IPY_MODEL_f8cd216e54124845bdcff36a1671d9a5" } }, "2de8d81703dc4d22a5a6df6516e4d021": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2f2089c792d04584999d145371b884f3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_527206ae470d46d1a6070dcdcf99f25a", "IPY_MODEL_54c985dd6d3d46988bcb30810243c03f" ], "layout": "IPY_MODEL_cebd3fedd3f244d6a59c6ec0fc3f8db4" } }, "2fb3a7c6ba9f46359200f565f3b8bd04": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "30d998154d034ae2820aa15597b4e906": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "3205a62320eb4e938c3b74e338750cf0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_e93a3795bb424dbca63791d08119544a", "IPY_MODEL_4e957abe04294d85ad5e175811038fe6" ], "layout": "IPY_MODEL_3502deaf69d64231a77fb776eb88d3cf" } }, "32aa05d953054364b61185ffb8e8a7f0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_91901c0a12f3466ba99eb977447b2024", "max": 1, "style": "IPY_MODEL_30d998154d034ae2820aa15597b4e906", "value": 1 } }, "32b051945319412eacae1a6cd1f01f8a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_2cbd0cfc2c754580a7106af72e0f7f09", "IPY_MODEL_de0fa0e198094a8f8c6370105d26b4b0" ], "layout": "IPY_MODEL_b024b63836b84be6befe036747fd71be" } }, "32b44abf760f47adab22b9d0f77f3333": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_9c1b863f929b4781a04f6eb361ff3390", "IPY_MODEL_131212b053044ea5b7510af01b792b47" ], "layout": "IPY_MODEL_c25b9de123db4f47948383b97d937a56" } }, "340eaaee4ebf400f8db83ef0c5f2ad6d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3429411fb35f4a5ab118fa1dc43f0cf2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3456f9ea97ab4f0ebc558c0986124396": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "34715d8625654697839587f86726288e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3502deaf69d64231a77fb776eb88d3cf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "35280158a3034f2ea010eb2287920314": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "35fd2844380d4251bf3d06ba12dc93d4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3622228c9a12465a8aeb2947f62191a0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "36da69c0c05949d69863899d76b5ab81": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "38e72e7654664e74bbfe2492fd768e65": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_80cec6077165444687518e5d499d2c39", "IPY_MODEL_9a41a38e3bb84b83afb3381a77916206" ], "layout": "IPY_MODEL_038a63f97a0646498fc0d85b2de124e8" } }, "3a178b8f48504af5aa08268849daac12": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c3b4352955cf44f5a2aad0595ba82bb6", "IPY_MODEL_d5c202e9b74a4a409046e17c465dfcb5" ], "layout": "IPY_MODEL_b0906d191d694f628f3c93af88f01989" } }, "3b5f866d1cc5407aa4d03d821f0d3137": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3ba8db971abd41d79459392eef214ac1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_e484200db4864092be12e8a0b3df1a42", "max": 1, "style": "IPY_MODEL_843b8a7c66a1460d8db88775efd0e6f9", "value": 1 } }, "3c9f6b9388f54ac49baf61c2fe7c3138": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3cd48be7f98b4e3a839b2d15d7cbdb2b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3db82a78e9ec4ae3b217177aa8f6df8b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_98146f87bc6344a9842c0c064337cbb9", "style": "IPY_MODEL_2dbcc28812b04fd2a3714dfa9ff6ea7b", "value": " 100.00% elapsed time : 13.97s = 0.2m = 0.0h cpu: 358%" } }, "3f269291b58041f1a1361020bf5bc8e8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_12bbd41a6b454c24a9122c64daa7bd22", "IPY_MODEL_aa189a66f10b4ca182c83fba0dc09db6" ], "layout": "IPY_MODEL_d08222cdc61549a6a7b7a15ef677cc79" } }, "40041fa4c837434dafbce96b5966e2b3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "409fa804d70443f69dadff0073207c8d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_d7158e5ede434c9cb26f8d64cbbc0250", "max": 1, "style": "IPY_MODEL_d9216cc03d174b7c89d487ccea4a57f8", "value": 1 } }, "41f32696c7ff4244a0f878afa4a3aa61": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "421342c7f0cc4756b906af7c81f73472": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "42f2f2bac6364bdcb4ca4f4f93df37d6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_74eb30b970fd4cc6a027befe4e64e6ec", "style": "IPY_MODEL_90d95846d5134d90aa737d88f0d29839", "value": " 100.00% elapsed time : 12.89s = 0.2m = 0.0h cpu: 1116%" } }, "434578b4e23149b7b8dc50bb02dd9145": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "434d56a120134e52ad6f6a437ef73d28": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_dc2e9c70ac79407fa18f56ff8da048b5", "style": "IPY_MODEL_a06f3318b5c648a79dbd38aa34ba6651", "value": " 100.00% elapsed time : 5.98s = 0.1m = 0.0h cpu: 360%" } }, "43a28bc4565d4b6aad08f3b9bc36227a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "43dbecd38c584b35aeb431b6ce7a454a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "44bb9eee42644a62ab675696357c2f36": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "45918df9ca1b4d6abee09feaa3326b49": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "45ecfd37188047178ca1bdcad54e3046": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "46877b3c203a4fdca9817e231423442d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "46bebbcd38944abe8e4b60b5eefe9d01": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "46deeb3a29b14cf38ac1b92f48d67d24": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "477f97b9cfda495e9e6648c22b17f106": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "49edfb96b2e549cba817551775fb956f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_e66fec75fd724ae4b52df5bb9d350f9d", "IPY_MODEL_fe5596a613524f14b907e22ff465a421" ], "layout": "IPY_MODEL_2fb3a7c6ba9f46359200f565f3b8bd04" } }, "4a92f282bf07440abfa08c3c224d1b47": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_c52c9c6eee6e404b9d371abbae498fca", "style": "IPY_MODEL_3456f9ea97ab4f0ebc558c0986124396", "value": " 100.00% elapsed time : 0.72s = 0.0m = 0.0h cpu: 1073%" } }, "4a9c946913c442f1aea97537a1dba1e8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4d058972c61d401caa3a5b8c8fca82e0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4d4825b24cf34c0ca7b7e4d9d6d95bee": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4d7444ff32f040f98784a2db37280141": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4e957abe04294d85ad5e175811038fe6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_f9cc140807d94fd3a7b075b6c0992113", "style": "IPY_MODEL_cf036b8cc2134776995c4a279c6fc0dc", "value": " 100.00% elapsed time : 5.75s = 0.1m = 0.0h cpu: 711%" } }, "4f4897d07f0e414586efddcc8c9bb62f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_b8752b4633934f048cf0eaa16a81203e", "IPY_MODEL_58ff1c060ed34bd5a0cbf65c4bbdbfce" ], "layout": "IPY_MODEL_cdd364f41ae6484496ab4bf97393d604" } }, "5172870fa20a467db22e8607e1c66cf1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "51c4b3801a35423f909839f9a8bb6bf6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_32aa05d953054364b61185ffb8e8a7f0", "IPY_MODEL_b0ffa314f0854f37b3e5e49903127894" ], "layout": "IPY_MODEL_23747e170d29433b83678673387ac150" } }, "527206ae470d46d1a6070dcdcf99f25a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_633f4d6e50fb4970ac6bebde3ffbcd00", "max": 1, "style": "IPY_MODEL_82525be8700f474fbefee49bbbffa7ed", "value": 1 } }, "5354b0c2d0b942a7a6b5d7af2ee67989": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "541f1f9f05db41328a1313850a0edb6a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_84257c39c3424ca39db2b9a32432cfd5", "max": 1, "style": "IPY_MODEL_5a40e33ad21540868dbb1cbb1c8b4471", "value": 1 } }, "54c985dd6d3d46988bcb30810243c03f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_45ecfd37188047178ca1bdcad54e3046", "style": "IPY_MODEL_9adf80e311674a09b8405a922c93317a", "value": " 100.00% elapsed time : 0.70s = 0.0m = 0.0h cpu: 1121%" } }, "559a63e181cd4246b655c293b508b0e7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "55dfdf279579445b838ec0d33f7ea288": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5603678837ab4219b9ce688505b932b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ce72577c46434932bf61b2cfe4984067", "IPY_MODEL_abf0976d506c4b458da5654d22b13c48" ], "layout": "IPY_MODEL_b8583d49d13d44eaa4cdf2cba8ed56a8" } }, "560eb40d1c464fb08deb280896a024b0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5624099c59064b4d87f2086aaa6027f1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "572b281151f8425e8d00daac34d3456d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_e2ba73945fd64166b64916540e3b9034", "style": "IPY_MODEL_74a4dd44785340c3a96629be333ad052", "value": " 100.00% elapsed time : 29.15s = 0.5m = 0.0h cpu: 570%" } }, "57a2c6d6b0c543459d2da93c017f4216": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "5807801d162548109c909a989370c5a7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "588c90725f48419785c1765c92fa5165": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_3429411fb35f4a5ab118fa1dc43f0cf2", "max": 1, "style": "IPY_MODEL_41f32696c7ff4244a0f878afa4a3aa61", "value": 1 } }, "58ff1c060ed34bd5a0cbf65c4bbdbfce": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_7fd198d5dedf4456a73c5481f82012fe", "style": "IPY_MODEL_ae205f1805374ac2bce4466536aa8f22", "value": " 100.00% elapsed time : 14.00s = 0.2m = 0.0h cpu: 1002%" } }, "5906ace200314583b5d4d2bf76d53df1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_61c1ea9bc7c84f4793da461299bbdb08", "style": "IPY_MODEL_45918df9ca1b4d6abee09feaa3326b49", "value": " 100.00% elapsed time : 6.44s = 0.1m = 0.0h cpu: 348%" } }, "5a40e33ad21540868dbb1cbb1c8b4471": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "5b17e42f88e444d6a559b24425a79109": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "60ff101447b54f04b94dcdefece31dcd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "61a3f27cc8d24369a17ac76c2d624b45": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "61c1ea9bc7c84f4793da461299bbdb08": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "61f7579f84a241a9a8ecb2fc05006c5c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "62230d6bf6d94790a34c16b99bc93c87": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6241be3cb4ca40998f3eab46d6fbdef3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_541f1f9f05db41328a1313850a0edb6a", "IPY_MODEL_0af4d94abe6a4692b7956a9cbc17f49b" ], "layout": "IPY_MODEL_e339b5b4cd0a4090974dd8612524d276" } }, "62f38fd28abc481595db3397148b62d8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6321917428f146bf81c27be835743882": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "633f4d6e50fb4970ac6bebde3ffbcd00": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6495cbc3b7584ec49bf1ec92b83bec6d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_b071b1fcb9ef4cc6b7f8879ff946cabf", "IPY_MODEL_187f011bec2441c58d6737a50c73ccdb" ], "layout": "IPY_MODEL_fee2fab921c540878e5e0a77a8566f23" } }, "64ec3d3a94594974844afcbe9dc2c4d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "68212aa6d788488284c19bcbb4b23aa2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6840117ebb5549649875bd6a4d57ec3d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "68484f881f83456d93f1a43ede5ec8ab": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "69524e4e91d04ff681ef98c7afd3045e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "69b1a48495054194acd13b77ef7c25d6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6bc0cf53518e416986f4329a1096a12d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "6d33fce6c341443d953fdc3e5bad709b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6f19b5eb84ce48aa84306304669f4c33": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "7122738a790d4dc58906017f2ad306aa": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "714d08dde5bc4f9b8660651afd4aabc7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_dfc1123927b4474db791915e148c68e0", "IPY_MODEL_830ff3fc109a429db900f97bcc9bc150" ], "layout": "IPY_MODEL_5624099c59064b4d87f2086aaa6027f1" } }, "72eed79598104f598e2a0dad3e125ca5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c894b2ae1ce842c2804228c96a85b531", "IPY_MODEL_0833c2923af74671973f874fcf788b01" ], "layout": "IPY_MODEL_c7da6b222a7146e59d9e569770dd8dca" } }, "7309c44f220840328f000e1188e42d91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_01b9a7bf1c2c4bdbbe8b933cab9daee7", "IPY_MODEL_cb467f43d620409c9f755efcee5a947f" ], "layout": "IPY_MODEL_b5008822c87b4a0eb2564df84124c8cf" } }, "74a4dd44785340c3a96629be333ad052": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "74eb30b970fd4cc6a027befe4e64e6ec": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "758c25ab1cc34580bc3fb0666be9d6bd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "766b36b281674cbbbbe5664758ebaa6c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "775b27d9df36496ca970e729b3f7d7b7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "791b912d474940bd9bdd30e0d076bfe8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "793d3f91963648a3a1a0526546a38bc9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "79faaad36c7b4a48a86f0b479685a82c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c7a35c006bfa43b187ec20b23b1804fd", "IPY_MODEL_25622fc49ad6408a8aa4f57ce7239c4e" ], "layout": "IPY_MODEL_8275363b20a44441a3e4c70a116d9c6a" } }, "7a96bc3087764915a48715ced97dd008": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "7cc38c5db68146ab959c29a7ffa79611": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_c63d6f542bfd40e69860e37303aa520c", "style": "IPY_MODEL_b29c9d59c46147acbb1350c8c5bf84b6", "value": " 100.00% elapsed time : 32.78s = 0.5m = 0.0h cpu: 509%" } }, "7df70d5448b64fdaa473ef572c694eda": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_22fda3a439cf4204872aa345e5447c65", "style": "IPY_MODEL_fdf40fdde1fa4c9a9cf46ce7add54e0e", "value": " 100.00% elapsed time : 0.70s = 0.0m = 0.0h cpu: 1110%" } }, "7fd198d5dedf4456a73c5481f82012fe": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "80cec6077165444687518e5d499d2c39": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_07ab1bb8a46a497caf3aa66e83ded229", "max": 1, "style": "IPY_MODEL_00221b86a37e44599bafe1536fe73ad3", "value": 1 } }, "80dc3198d4374edab4bcc590fc5560b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "82525be8700f474fbefee49bbbffa7ed": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "826326b540104685b9fc67654d660e7c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8263cbaa9f574e7daae40f12eb3e70c1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "8275363b20a44441a3e4c70a116d9c6a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "830ff3fc109a429db900f97bcc9bc150": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_434578b4e23149b7b8dc50bb02dd9145", "style": "IPY_MODEL_dfb98281da9f483584ab885163750d49", "value": " 100.00% elapsed time : 32.42s = 0.5m = 0.0h cpu: 636%" } }, "84257c39c3424ca39db2b9a32432cfd5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "843b8a7c66a1460d8db88775efd0e6f9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "86090db4d8ce45a1a424cf76a3c65385": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "86635debda3f4ee1802452342f4037d7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "89dc0187eb624c63ba9c7694b039188e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_e38b3f88bcbc4008ba291a9816c1b87d", "max": 1, "style": "IPY_MODEL_0e9727d90d6d4568bb276f59044e45e2", "value": 1 } }, "8bb2fc61697444df8673a7adac29e9ea": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8bcd4630a7154ff89df6e1faa2be1e2f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "8ceafb99faa04685ab3607dbce998e4c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_92fe7b5755f843668ab8364508e4d028", "IPY_MODEL_f15ab54207974eeaa3253dda4c2419bf" ], "layout": "IPY_MODEL_64ec3d3a94594974844afcbe9dc2c4d6" } }, "8e4bdb6e1f12434ea4d2d566eea69a21": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8f1deb5660fa431cbdcc1d82a99ac3bb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_8bb2fc61697444df8673a7adac29e9ea", "max": 1, "style": "IPY_MODEL_5172870fa20a467db22e8607e1c66cf1", "value": 1 } }, "90d95846d5134d90aa737d88f0d29839": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "91901c0a12f3466ba99eb977447b2024": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "92fe7b5755f843668ab8364508e4d028": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_a8094ffe910148cd991462de80ae8ec2", "max": 1, "style": "IPY_MODEL_ca0a42909b6d4a73b4456c6d56bf00b2", "value": 1 } }, "931d71970d9d40d0b57885078316de18": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "95ab145b4f7d47258e7e519b70a89efe": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "96de2725f88e4e03a67562f7dd90316d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "98146f87bc6344a9842c0c064337cbb9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9858ff13856a4a15bb5801b0b7494e3d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "98e30ebf732f4de08e6781becea48b25": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9a41a38e3bb84b83afb3381a77916206": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_10a9df2f76e34fa39dead2533c4d39da", "style": "IPY_MODEL_f4f3e2a2e3de4f7299ab0a2c2ef87668", "value": " 100.00% elapsed time : 28.38s = 0.5m = 0.0h cpu: 644%" } }, "9adf80e311674a09b8405a922c93317a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9ae7b7ad855e4952aeab88e9faf63b3c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9c1b863f929b4781a04f6eb361ff3390": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_e34de64e6d834ce88c87c8940e6ec1b1", "max": 1, "style": "IPY_MODEL_ae05e5e6fa224a789139b548b7b7712f", "value": 1 } }, "9d0c9f4613b0488cb4d432b723eabbf0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_c4575ae4fedb4c73b0d773701fc2217b", "max": 1, "style": "IPY_MODEL_baf310a539644a0daef8343dfb084cf3", "value": 1 } }, "a03d5cb76c0c46e995d2ed4153362f59": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_cee1ef89af28408c975dcc8cd4ddfa5d", "max": 1, "style": "IPY_MODEL_96de2725f88e4e03a67562f7dd90316d", "value": 1 } }, "a06f3318b5c648a79dbd38aa34ba6651": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "a098267479be4d8cbed257366549148d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a099f032e6b14c3099c4320eb4b8daff": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_c473e0245fb54e408a8e9cfec3d65133", "max": 1, "style": "IPY_MODEL_ca8b7aa1b8a44da68b109cae0e16aa1c", "value": 1 } }, "a4562b7fc1164a7489ea3dc704e524e6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_6d33fce6c341443d953fdc3e5bad709b", "style": "IPY_MODEL_62230d6bf6d94790a34c16b99bc93c87", "value": " 100.00% elapsed time : 12.22s = 0.2m = 0.0h cpu: 1142%" } }, "a4d0ea3cb6cf4bd68b60bc3e6836890e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_27207d24a4044609812521335ae62790", "IPY_MODEL_27179006c7dd49d4a811ac3fda56607d" ], "layout": "IPY_MODEL_826326b540104685b9fc67654d660e7c" } }, "a61473f48d9741a781f2b1b1fe0e7d12": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a6bbfa34e9ea44ec909bcf13c3fdeb4a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a6fea2c012dc43ce8e17b8c9ce2b2b5e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_e9a81e8b58654686995b5a03854ebd56", "IPY_MODEL_7df70d5448b64fdaa473ef572c694eda" ], "layout": "IPY_MODEL_afa77a4fe7444bd9bcccd761074f41c4" } }, "a787a434b2b7435fab06a5bb905f2640": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a7cd424580274e7cb905f7e42d9ca10b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_44bb9eee42644a62ab675696357c2f36", "style": "IPY_MODEL_2cf439d724cc4243bff65181efdc2241", "value": " 100.00% elapsed time : 7.14s = 0.1m = 0.0h cpu: 606%" } }, "a8094ffe910148cd991462de80ae8ec2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "aa189a66f10b4ca182c83fba0dc09db6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_68484f881f83456d93f1a43ede5ec8ab", "style": "IPY_MODEL_7a96bc3087764915a48715ced97dd008", "value": " 100.00% elapsed time : 6.72s = 0.1m = 0.0h cpu: 617%" } }, "aab6341dd68c43a69da5c9656cc391dd": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "aba7888e4c12434bb956b2ab4c4e07cd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "abf0976d506c4b458da5654d22b13c48": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_3cd48be7f98b4e3a839b2d15d7cbdb2b", "style": "IPY_MODEL_fe7bc9203b2a4fa2939e53d680790427", "value": " 100.00% elapsed time : 1.38s = 0.0m = 0.0h cpu: 636%" } }, "adbcf1f0e0694e4099429ce403b23f88": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "ae05e5e6fa224a789139b548b7b7712f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "ae205f1805374ac2bce4466536aa8f22": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "afa77a4fe7444bd9bcccd761074f41c4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b024b63836b84be6befe036747fd71be": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b071b1fcb9ef4cc6b7f8879ff946cabf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_bc85d93b610e4e5c889d85cbb1997398", "max": 1, "style": "IPY_MODEL_477f97b9cfda495e9e6648c22b17f106", "value": 1 } }, "b0906d191d694f628f3c93af88f01989": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b0a90f6adb8d4443b495b30af7333781": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b0ffa314f0854f37b3e5e49903127894": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_07c31800c3ff4f5da4e8a725a3f241a4", "style": "IPY_MODEL_2c2c4990ea554eeaae5d24f0daba8964", "value": " 100.00% elapsed time : 0.87s = 0.0m = 0.0h cpu: 944%" } }, "b1e0f515814a47ffb0d9027c34a70ffd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f4241116a621450fbfb226b554c3cb66", "IPY_MODEL_c32c98b5eeaa4e48a571cec3cc290bd5" ], "layout": "IPY_MODEL_a6bbfa34e9ea44ec909bcf13c3fdeb4a" } }, "b29c9d59c46147acbb1350c8c5bf84b6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b2c9bc4c513c4b42a76a5dd90bd4df87": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_06a7132949614c64bc244ee6050ea022", "IPY_MODEL_572b281151f8425e8d00daac34d3456d" ], "layout": "IPY_MODEL_2de8d81703dc4d22a5a6df6516e4d021" } }, "b3b9212ad3d046388333ebcdeb4869ef": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_560eb40d1c464fb08deb280896a024b0", "style": "IPY_MODEL_46877b3c203a4fdca9817e231423442d", "value": " 100.00% elapsed time : 6.78s = 0.1m = 0.0h cpu: 355%" } }, "b43c4d2d5aef4540a5a13df5592a10b9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b5008822c87b4a0eb2564df84124c8cf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b83bf52d93a64347bcf8032ec34341e8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "b8583d49d13d44eaa4cdf2cba8ed56a8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b8752b4633934f048cf0eaa16a81203e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_3b5f866d1cc5407aa4d03d821f0d3137", "max": 1, "style": "IPY_MODEL_dda77dd49e4a48d39aec2024e1612573", "value": 1 } }, "b9531b2b9fe2425489acf4bd0b296c63": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ef6f88f54d7e4ad3ac4c753805153efe", "IPY_MODEL_0742959cf1694c7b9f46fc8a07d0deb8" ], "layout": "IPY_MODEL_e1d9e147b4ac4560a70157c584cdf5af" } }, "b9e0fdf2491742e5a04fb3e8225bac51": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "bacd1e5c163641a681b334eb850ab896": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_791b912d474940bd9bdd30e0d076bfe8", "max": 1, "style": "IPY_MODEL_35280158a3034f2ea010eb2287920314", "value": 1 } }, "baf310a539644a0daef8343dfb084cf3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "bb5134509755412f9de8c231f0af9d59": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_d0e914ed40774a02835d7994b0a5d5df", "style": "IPY_MODEL_cc31983c93e6435aaf20e5be14ff6c50", "value": " 100.00% elapsed time : 10.96s = 0.2m = 0.0h cpu: 414%" } }, "bc85d93b610e4e5c889d85cbb1997398": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c0c2eb71003b4682a1d50da83928d3a1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_dd3a6f1c78a0454294078e7a134cab50", "style": "IPY_MODEL_adbcf1f0e0694e4099429ce403b23f88", "value": " 100.00% elapsed time : 2.42s = 0.0m = 0.0h cpu: 827%" } }, "c18247f9adfe40d296cc4b59c4910cb7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_2233537e6b85408bb2b2957ecf0915b4", "IPY_MODEL_17cdc7b23332446ebb1ec0b9f54bb44f" ], "layout": "IPY_MODEL_00f6f385d0c44d0dae1c94ec9dac2a97" } }, "c1de7d491d9e42a285c1f45aca85970c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c2524e19f2ac42788037747a2dfddd4b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_1946a39e40b0463ba57666e256ebc848", "IPY_MODEL_c0c2eb71003b4682a1d50da83928d3a1" ], "layout": "IPY_MODEL_a787a434b2b7435fab06a5bb905f2640" } }, "c25b9de123db4f47948383b97d937a56": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c312343208d747368c973f87d37af284": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_f7ec341be29345c3b5be7bcaf6847da4", "max": 1, "style": "IPY_MODEL_6f19b5eb84ce48aa84306304669f4c33", "value": 1 } }, "c32c98b5eeaa4e48a571cec3cc290bd5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_775b27d9df36496ca970e729b3f7d7b7", "style": "IPY_MODEL_0a3512db3fe044ba8bdc56dbdf75f455", "value": " 100.00% elapsed time : 0.70s = 0.0m = 0.0h cpu: 1122%" } }, "c3b4352955cf44f5a2aad0595ba82bb6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_6321917428f146bf81c27be835743882", "max": 1, "style": "IPY_MODEL_86635debda3f4ee1802452342f4037d7", "value": 1 } }, "c4575ae4fedb4c73b0d773701fc2217b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c473e0245fb54e408a8e9cfec3d65133": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c52c9c6eee6e404b9d371abbae498fca": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c63d6f542bfd40e69860e37303aa520c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c6d7e7834c424eeabd6101afe191af10": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_d0087f3b9c7a48a3b9dcad7711841877", "IPY_MODEL_5906ace200314583b5d4d2bf76d53df1" ], "layout": "IPY_MODEL_69524e4e91d04ff681ef98c7afd3045e" } }, "c7a35c006bfa43b187ec20b23b1804fd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_95ab145b4f7d47258e7e519b70a89efe", "max": 1, "style": "IPY_MODEL_f1420e777cdf4f42aae667f7df9529dc", "value": 1 } }, "c7da6b222a7146e59d9e569770dd8dca": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c894b2ae1ce842c2804228c96a85b531": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_46bebbcd38944abe8e4b60b5eefe9d01", "max": 1, "style": "IPY_MODEL_fb592d86fa5b42f59cf0c46a38e848ae", "value": 1 } }, "ca0a42909b6d4a73b4456c6d56bf00b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "ca839e525a1a42068debd670b5198e64": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "ca8b7aa1b8a44da68b109cae0e16aa1c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "cb467f43d620409c9f755efcee5a947f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_a61473f48d9741a781f2b1b1fe0e7d12", "style": "IPY_MODEL_f5410bda66ec440292d57beb231ce411", "value": " 100.00% elapsed time : 13.02s = 0.2m = 0.0h cpu: 1103%" } }, "cc31983c93e6435aaf20e5be14ff6c50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "ccebbe0638da4318814b332cb007d67f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cd8da2311de74985b4e25bd29679dc01": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cd91782eb1cd4cb8a6e1302fcca7c5af": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_d5bfb8e6125a492c89526b3dda17cdb1", "max": 1, "style": "IPY_MODEL_ef2e37021b82442b9529ae5766fee15b", "value": 1 } }, "cdd364f41ae6484496ab4bf97393d604": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ce3cc5f45de742c494a97521d3769b48": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_f97acbc63f1e4ee3b9de44c17bbcb985", "max": 1, "style": "IPY_MODEL_e05c601f0e3347fd88271a5ae29b323b", "value": 1 } }, "ce72577c46434932bf61b2cfe4984067": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_f92f8869ab2d488a96b069e9fa61618d", "max": 1, "style": "IPY_MODEL_6840117ebb5549649875bd6a4d57ec3d", "value": 1 } }, "cebd3fedd3f244d6a59c6ec0fc3f8db4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cee1ef89af28408c975dcc8cd4ddfa5d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cf036b8cc2134776995c4a279c6fc0dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cf77613605114b809c6d01d249635a2f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_bacd1e5c163641a681b334eb850ab896", "IPY_MODEL_a7cd424580274e7cb905f7e42d9ca10b" ], "layout": "IPY_MODEL_68212aa6d788488284c19bcbb4b23aa2" } }, "d0068db9b8fa4e1886f4b6c04b1962e4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_ce3cc5f45de742c494a97521d3769b48", "IPY_MODEL_03eec33c68624212b2b33ffa2cbed03c" ], "layout": "IPY_MODEL_1c35727448754af2abb5ef3fd8c0ad5b" } }, "d0087f3b9c7a48a3b9dcad7711841877": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_4d4825b24cf34c0ca7b7e4d9d6d95bee", "max": 1, "style": "IPY_MODEL_21ef644ee65d49359ed02a29199b0e47", "value": 1 } }, "d08222cdc61549a6a7b7a15ef677cc79": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d0e914ed40774a02835d7994b0a5d5df": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d10c6a07572344f2a9b338998e87fb1b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d38b30728dd444e59e670b63d8214568": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_40041fa4c837434dafbce96b5966e2b3", "style": "IPY_MODEL_b9e0fdf2491742e5a04fb3e8225bac51", "value": " 100.00% elapsed time : 31.73s = 0.5m = 0.0h cpu: 655%" } }, "d5bfb8e6125a492c89526b3dda17cdb1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d5c202e9b74a4a409046e17c465dfcb5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_5807801d162548109c909a989370c5a7", "style": "IPY_MODEL_0516b216b06d46d8a158c9d4927e66b7", "value": " 100.00% elapsed time : 14.60s = 0.2m = 0.0h cpu: 350%" } }, "d7158e5ede434c9cb26f8d64cbbc0250": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d9216cc03d174b7c89d487ccea4a57f8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "d92b49e6a9614d3889e69c5b5d628856": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "db4495a19c90419fa8055f77fe0126c1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dc2e9c70ac79407fa18f56ff8da048b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dcbacc4290474b2eaebd00462b525600": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dd3a6f1c78a0454294078e7a134cab50": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dda77dd49e4a48d39aec2024e1612573": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "de0fa0e198094a8f8c6370105d26b4b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_f5bcb62dd88f4174a00c460074c752e1", "style": "IPY_MODEL_08e9a67929a64fa7a3a9f14a1b2ff123", "value": " 100.00% elapsed time : 5.90s = 0.1m = 0.0h cpu: 360%" } }, "de5da09314ff49fcbffb829be4d54934": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "de71f58947ad4e6ba67fa6a0278e8e55": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "decce0859b5c4f86b2184de0e9b7383e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dfb98281da9f483584ab885163750d49": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "dfc1123927b4474db791915e148c68e0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_a098267479be4d8cbed257366549148d", "max": 1, "style": "IPY_MODEL_46deeb3a29b14cf38ac1b92f48d67d24", "value": 1 } }, "e00c8ba24146470ebeed118ef6fcde27": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e0557b18a75c4111925762c2224b2bd8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e05c601f0e3347fd88271a5ae29b323b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "e0fb6fc8c5304fbaa7874c9c3f9a2be7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_cd91782eb1cd4cb8a6e1302fcca7c5af", "IPY_MODEL_4a92f282bf07440abfa08c3c224d1b47" ], "layout": "IPY_MODEL_7122738a790d4dc58906017f2ad306aa" } }, "e1d9e147b4ac4560a70157c584cdf5af": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e26c2400ded043b5aafd2de374ed01ca": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_8f1deb5660fa431cbdcc1d82a99ac3bb", "IPY_MODEL_3db82a78e9ec4ae3b217177aa8f6df8b" ], "layout": "IPY_MODEL_d92b49e6a9614d3889e69c5b5d628856" } }, "e2ba73945fd64166b64916540e3b9034": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e2eab791861648e5b9ff9f76f5a49d5d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_1fd6cc50554c4ccf9ad92f2e78c6011a", "IPY_MODEL_bb5134509755412f9de8c231f0af9d59" ], "layout": "IPY_MODEL_decce0859b5c4f86b2184de0e9b7383e" } }, "e339b5b4cd0a4090974dd8612524d276": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e34de64e6d834ce88c87c8940e6ec1b1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e38b3f88bcbc4008ba291a9816c1b87d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e484200db4864092be12e8a0b3df1a42": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e612489cae424c1bbadcdf3ec472a047": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a03d5cb76c0c46e995d2ed4153362f59", "IPY_MODEL_2a5a6718948a49dca24e83b081858d5e" ], "layout": "IPY_MODEL_17c43d6d9bbd49eaa2302a5ee89af71b" } }, "e66fec75fd724ae4b52df5bb9d350f9d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_b43c4d2d5aef4540a5a13df5592a10b9", "max": 1, "style": "IPY_MODEL_8bcd4630a7154ff89df6e1faa2be1e2f", "value": 1 } }, "e713b972e22f413e88e8c0f95ac6ce5a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_0a0f12d5a81a47dcac49865ee4d660f0", "IPY_MODEL_f3ebd941b21c4616b7acf72e3899e0f1" ], "layout": "IPY_MODEL_1f73089f56244922af5127d0dabb6b7d" } }, "e7ad18e2f2974a4894be759cf07ee391": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a099f032e6b14c3099c4320eb4b8daff", "IPY_MODEL_a4562b7fc1164a7489ea3dc704e524e6" ], "layout": "IPY_MODEL_4d058972c61d401caa3a5b8c8fca82e0" } }, "e93a3795bb424dbca63791d08119544a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_f902e6d9c5d94f3987d86012e7f042ac", "max": 1, "style": "IPY_MODEL_05de525ceda84f4390c303b97f477323", "value": 1 } }, "e9a81e8b58654686995b5a03854ebd56": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_ea2a0821082a42d9bd7bd31e7f675ee7", "max": 1, "style": "IPY_MODEL_24693c12d9794be09d8c654489fca39c", "value": 1 } }, "ea2a0821082a42d9bd7bd31e7f675ee7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "edd4df9fecc24c19ade14591e1fb9234": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_36da69c0c05949d69863899d76b5ab81", "max": 1, "style": "IPY_MODEL_11185b76e131467c86d7772356317f72", "value": 1 } }, "ef199f37c4e0495eb24c26c279d03289": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ef2e37021b82442b9529ae5766fee15b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "ef6f88f54d7e4ad3ac4c753805153efe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_4a9c946913c442f1aea97537a1dba1e8", "max": 1, "style": "IPY_MODEL_57a2c6d6b0c543459d2da93c017f4216", "value": 1 } }, "efe3e9ea435743efac2e9e596dac7078": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_89dc0187eb624c63ba9c7694b039188e", "IPY_MODEL_d38b30728dd444e59e670b63d8214568" ], "layout": "IPY_MODEL_9ae7b7ad855e4952aeab88e9faf63b3c" } }, "f1420e777cdf4f42aae667f7df9529dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "f15ab54207974eeaa3253dda4c2419bf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_c1de7d491d9e42a285c1f45aca85970c", "style": "IPY_MODEL_3c9f6b9388f54ac49baf61c2fe7c3138", "value": " 100.00% elapsed time : 6.73s = 0.1m = 0.0h cpu: 615%" } }, "f3ebd941b21c4616b7acf72e3899e0f1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_b0a90f6adb8d4443b495b30af7333781", "style": "IPY_MODEL_98e30ebf732f4de08e6781becea48b25", "value": " 100.00% elapsed time : 0.73s = 0.0m = 0.0h cpu: 1098%" } }, "f421ff08b7c64c7da1b7d7cba2c48ee4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c312343208d747368c973f87d37af284", "IPY_MODEL_434d56a120134e52ad6f6a437ef73d28" ], "layout": "IPY_MODEL_62f38fd28abc481595db3397148b62d8" } }, "f4241116a621450fbfb226b554c3cb66": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "FloatProgressModel", "state": { "layout": "IPY_MODEL_dcbacc4290474b2eaebd00462b525600", "max": 1, "style": "IPY_MODEL_6bc0cf53518e416986f4329a1096a12d", "value": 1 } }, "f4f3e2a2e3de4f7299ab0a2c2ef87668": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f5410bda66ec440292d57beb231ce411": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f5bcb62dd88f4174a00c460074c752e1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f6e4add5240b48f196cbcc8112166a01": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f72100e8217f4b718bdafde6561fe4d4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "f7ec341be29345c3b5be7bcaf6847da4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f8cd216e54124845bdcff36a1671d9a5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f902e6d9c5d94f3987d86012e7f042ac": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f92f8869ab2d488a96b069e9fa61618d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f97acbc63f1e4ee3b9de44c17bbcb985": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f9cc140807d94fd3a7b075b6c0992113": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fb592d86fa5b42f59cf0c46a38e848ae": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "ProgressStyleModel", "state": { "description_width": "" } }, "fba74923f4c74720aa9d0ce64ae1966e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_9d0c9f4613b0488cb4d432b723eabbf0", "IPY_MODEL_7cc38c5db68146ab959c29a7ffa79611" ], "layout": "IPY_MODEL_ccebbe0638da4318814b332cb007d67f" } }, "fc82d3e528d842cbba785f5af38d95bb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_de5da09314ff49fcbffb829be4d54934", "style": "IPY_MODEL_55dfdf279579445b838ec0d33f7ea288", "value": " 100.00% elapsed time : 32.20s = 0.5m = 0.0h cpu: 646%" } }, "fd2d9deaf7a54197bc18d843a05d5b68": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_588c90725f48419785c1765c92fa5165", "IPY_MODEL_fc82d3e528d842cbba785f5af38d95bb" ], "layout": "IPY_MODEL_43dbecd38c584b35aeb431b6ce7a454a" } }, "fdf40fdde1fa4c9a9cf46ce7add54e0e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fe5596a613524f14b907e22ff465a421": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "LabelModel", "state": { "layout": "IPY_MODEL_80dc3198d4374edab4bcc590fc5560b5", "style": "IPY_MODEL_2230558f090249c0816bbc27dbb41579", "value": " 100.00% elapsed time : 0.69s = 0.0m = 0.0h cpu: 1125%" } }, "fe7bc9203b2a4fa2939e53d680790427": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fee2fab921c540878e5e0a77a8566f23": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ff3fd3f23df944d28a2e4cd6ac313427": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 2 }