diff --git a/ch-dask-dataframe/dask-case-study.ipynb b/ch-dask-dataframe/dask-case-study.ipynb index e7ce953..80a3ab0 100644 --- a/ch-dask-dataframe/dask-case-study.ipynb +++ b/ch-dask-dataframe/dask-case-study.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "(sec-dask-case-study)\n", + "(sec-dask-case-study)=\n", "# 基于 Dask 的数据分析案例\n", "\n", "本节我们将介绍 2个基于 Dask 的数据分析案例。" diff --git a/ch-ray-data/modin.ipynb b/ch-ray-data/modin.ipynb index f42a893..727d6e8 100644 --- a/ch-ray-data/modin.ipynb +++ b/ch-ray-data/modin.ipynb @@ -20,21 +20,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'utils'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01msys\u001b[39;00m\n\u001b[1;32m 4\u001b[0m sys\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m..\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m----> 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mutils\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m nyc_flights\n\u001b[1;32m 7\u001b[0m folder_path \u001b[38;5;241m=\u001b[39m nyc_flights()\n\u001b[1;32m 8\u001b[0m file_path \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mjoin(folder_path, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*.csv\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'utils'" - ] - } - ], + "outputs": [], "source": [ "import os\n", "\n", @@ -43,7 +31,7 @@ "from utils import nyc_flights\n", "\n", "folder_path = nyc_flights()\n", - "file_path = os.path.join(folder_path, \"*.csv\")" + "file_path = os.path.join(folder_path, \"nyc-flights\", \"*.csv\")" ] }, { @@ -57,9 +45,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-07-09 17:02:35,641\tINFO worker.py:1749 -- Started a local Ray instance.\n", + "FutureWarning: Support for nested sequences for 'parse_dates' in pd.read_csv is deprecated. Combine the desired columns with pd.to_datetime after parsing instead.\n", + "FutureWarning: Support for nested sequences for 'parse_dates' in pd.read_csv is deprecated. Combine the desired columns with pd.to_datetime after parsing instead.\n", + "UserWarning: `read_*` implementation has mismatches with pandas:\n", + "Data types of partitions are different! Please refer to the troubleshooting section of the Modin documentation to fix this issue.\n" + ] + }, { "data": { "text/plain": [ @@ -87,7 +86,7 @@ "Name: 3, dtype: object" ] }, - "execution_count": 34, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -100,7 +99,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -109,7 +108,7 @@ "0.0" ] }, - "execution_count": 35, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -325,18 +324,13 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ - "import os\n", - "\n", - "os.environ[\"MODIN_ENGINE\"] = \"dask\"\n", - "\n", - "import modin.config as modin_cfg\n", - "modin_cfg.Engine.put(\"dask\")\n", - "\n", - "import modin.experimental.pandas as pd\n", + "%matplotlib inline\n", + "import matplotlib_inline\n", + "matplotlib_inline.backend_inline.set_matplotlib_formats('svg')\n", "import matplotlib.pyplot as plt\n", "from utils import nyc_taxi\n", "\n", @@ -352,9 +346,16 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 13, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "FutureWarning: Passing 'use_legacy_dataset' is deprecated as of pyarrow 15.0.0 and will be removed in a future version.\n" + ] + }, { "data": { "text/html": [ @@ -542,7 +543,7 @@ "4 1.0 19.68 2.5 0.00 " ] }, - "execution_count": 2, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -563,7 +564,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -586,9 +587,16 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m(raylet)\u001b[0m Spilled 4064 MiB, 399 objects, write throughput 2484 MiB/s. Set RAY_verbose_spill_logs=0 to disable this message.\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -662,7 +670,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -709,12 +717,1663 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4UAAAIrCAYAAABYsTyKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACDR0lEQVR4nOzdd3gU1dvG8XuBNELokAQIEIr0JjWg1CgCUhSlKkUERVCKioJKU4zwk2KhqoAlSJOiKCBSRZCO0gWpAUKREmqAZN4/5s3CkgSyw5JN2O/nuuYie2bmzLNnZyc8OTPn2AzDMAQAAAAA8EgZ3B0AAAAAAMB9SAoBAAAAwIORFAIAAACAByMpBAAAAAAPRlIIAAAAAB6MpBAAAAAAPBhJIQAAAAB4MJJCAAAAAPBgJIUAAAAA4MFICgGkuhUrVshms2nFihVujcNms2nw4MFujcFTTJ06VTabTQcPHnR3KCmS3uJNaw4ePCibzaaPP/7Y3aEAAFKApBC4i3Hjxslms6l69eruDiXNGDx4sGw2212XunXrplpMhQsXth83Q4YMyp49u8qVK6du3bpp3bp1LjvOtGnTNGbMGJfVB1NCEpGS5W6J2uXLlzV48OBU/6NDv379ZLPZ1Lp161Q9bmoZN26cpk6d6u4wHCQk7wmLr6+vHnroIfXs2VMnTpxwd3gPpLlz56pRo0bKnTu3vL29lS9fPrVq1UrLli1zd2iSpGPHjmnw4MHaunWru0MB0pVM7g4ASOsiIyNVuHBhrV+/Xvv27VOxYsXcHZLbPf300w7tcPHiRXXv3l1PPfWUnn76aXt5YGBgkvvXrl1bV65ckbe3t0vjqlixol5//XVJ0oULF7Rr1y7NmjVLX3zxhfr06aNRo0Y5bH/lyhVlyuTcZXDatGnavn27evfu7aqwISlPnjz69ttvHcpGjhypqKgojR49OtG2d3L58mUNGTJEklLtDxOGYej7779X4cKF9dNPP+nChQsKCAhIlWOnlnHjxil37tzq1KmTu0NJZOjQoQoNDdXVq1e1evVqjR8/Xr/88ou2b9+uzJkzuzu8B4JhGHrhhRc0depUVapUSX379lVQUJCOHz+uuXPnqkGDBvrjjz9Us2ZNt8Z57NgxDRkyRIULF1bFihXdGguQnpAUAndw4MABrVmzRnPmzNFLL72kyMhIDRo0KFVjiI+P17Vr1+Tr65uqx72T8uXLq3z58vbXp0+fVvfu3VW+fHk999xzye539epVeXt7K0OGDPfl/eTPnz/R8YcPH6527dpp9OjRKl68uLp3725fl5ba1NP5+/sn+uymT5+us2fP3vGcSitWrFihqKgoLVu2TA0bNtScOXPUsWNHd4flMRo1aqQqVapIkl588UXlypVLo0aN0vz589W2bVs3R5c+3O13zciRIzV16lT17t1bo0aNks1ms69755139O233zr9RzYAaQe3jwJ3EBkZqRw5cqhJkyZ65plnFBkZaV93/fp15cyZU507d060X0xMjHx9ffXGG2/Yy2JjYzVo0CAVK1ZMPj4+CgkJUb9+/RQbG+uwr81mU8+ePRUZGakyZcrIx8dHixYtkiR9/PHHqlmzpnLlyiU/Pz9VrlxZs2fPTnT8K1eu6LXXXlPu3LkVEBCgZs2a6ejRo0k+Q3f06FG98MILCgwMlI+Pj8qUKaPJkyffS7NJuvnc4PTp0/Xuu+8qf/78ypw5s2JiYpJ8prBu3boqW7asNm3apJo1a8rPz0+hoaGaMGHCPcXh5+enb7/9Vjlz5tSwYcNkGIZ93e3tceHCBfXu3VuFCxeWj4+P8ubNq8cee0ybN2+2x/jzzz/r0KFD9tvVChcuLEm6du2aBg4cqMqVKytbtmzy9/fXo48+quXLlzvEc+uzVpMmTVLRokXl4+OjqlWrasOGDYni3717t1q1aqU8efLIz89PJUqU0DvvvOOwzb18hlOmTFH9+vWVN29e+fj4qHTp0ho/fnyi7QoXLqwnn3xSq1evVrVq1eTr66siRYrom2++SbTtjh07VL9+ffn5+alAgQL64IMPFB8fn6J47ubkyZPq0qWLAgMD5evrqwoVKujrr7+2rz948KC9J3HIkCH2zynhc/7777/VqVMnFSlSRL6+vgoKCtILL7yg//77757iioyMVOnSpVWvXj2Fh4c7XCsSJJz3M2fO1JAhQ5Q/f34FBATomWee0fnz5xUbG6vevXsrb968ypIlizp37pzo+nDjxg29//779vOmcOHCGjBgQJLXkaSely1cuLBDT1/C7Zd//PGH+vbtqzx58sjf319PPfWUTp065bDfjh07tHLlSqdvDx89erQKFSokPz8/1alTR9u3b7evmzJlimw2m7Zs2ZJovw8//FAZM2bU0aNHU3ScW9WvX1+S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OHfunL2sTJkyRp06de7WHIZh3DzP/fz8jKioKHv5unXrDElGnz59HN5/vnz5jLi4OHvZ5s2bDUnGlClT7nichPh/++0349SpU8aRI0eM6dOnG7ly5XI4dkqunQnXiFOnTiV7vObNmxtlypS5Y0wp/U4mnA+lSpVyuHZ88sknhiRj27ZthmGY18FcuXIZVatWNa5fv27fburUqYYkh8/EVb9rbpcQ09y5c++6rWHcvA7cGseFCxeM0NBQo3DhwvbPOrnv2Z1+R3zzzTf2stjYWCMoKMho2bKlvWzDhg0pOncAOOL2USAZkZGRCgwMVL169STJPqrg9OnTFRcXJ8m8RSl37tz2v6ZL5l8ylyxZ4jAC4axZs1SqVCmVLFlSp0+fti8JtzjdfothnTp1VLp06UQx3drbcvbsWZ0/f16PPvqo/fZGSfbbf1555RWHfV999VWH14Zh6IcfflDTpk1lGIZDXA0bNtT58+cd6rWqY8eOKe4lypQpk1566SX7a29vb7300ks6efKkNm3adE9xJPToXbhwIdltsmfPrnXr1unYsWNO158xY0Z7L2h8fLzOnDmjGzduqEqVKkm2Y+vWrZUjRw7764S/aO/fv1+SdOrUKa1atUovvPCCChYs6LBvQm+WKz7DWz+b8+fP6/Tp06pTp47279+v8+fPO2xbunRpe5ySOeBLiRIl7DFL0i+//KIaNWo43EaWJ08etW/f/o5xpMQvv/yioKAgh2fEvLy89Nprr+nixYtauXLlXeu49f1evXpVp0+fVo0aNSTJ8vkeGRmpKlWq2AdfCggIUJMmTZK8hVSSOnToYO8NlqTq1avbB/G4VfXq1XXkyBHduHFDkvn+Jalv374O2yX0UN5+a54zunXr5tBL+uijjyouLk6HDh2yXKcktWjRwqGnr1q1aqpevbr9vUhmexw7dszhOhgZGSk/Pz+1bNkyRccJDw9Xnjx5FBISojZt2ihLliyaO3eu/dgpuXZmz55dkjR//vxkb3fOnj27oqKikrzVW7L2nezcubPDHRS3Xws2btyo//77T127dnV4Zq99+/YO1xDJdb9rbhcTEyNJKR486ZdfflG1atX0yCOP2MuyZMmibt266eDBg9q5c2eK6rldlixZHJ4x9vb2VrVq1RyuQQCsISkEkhAXF6fp06erXr16OnDggPbt26d9+/apevXqOnHi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J09q3LhxKlCggH3AlMcff1xBQUGqVauWAgMDtWvXLn3++edq0qSJ/fxz9XXV29tbgwcP1quvvqr69eurVatWOnjwoKZOnaqiRYs6XNNd8bsmOW+++aZ27NihkSNHavny5XrmmWcUFBSk6OhozZs3T+vXr9eaNWskSW+//ba+//57NWrUSK+99ppy5sypr7/+WgcOHNAPP/xg7+kvU6aMatSoof79++vMmTPKmTOnpk+f7pD8Oqto0aLKnj27JkyYoICAAPn7+6t69epOPd8OeKTUHewUSPuaNm1q+Pr6GpcuXUp2m06dOhleXl72Icfj4+ONkJAQQ5LxwQcfJLnPtWvXjOHDhxtlypQxfHx8jBw5chiVK1c2hgwZYpw/f96+naRkp0X46quvjOLFixs+Pj5GyZIljSlTphiDBg0ybv8qX7p0yejRo4eRM2dOI0uWLEaLFi2MPXv2GJKMjz76yGHbEydOGD169DBCQkIMLy8vIygoyGjQoIExadKkFLWXYdx5SopZs2Yl2j654cbLlCljbNy40QgLCzN8fX2NQoUKGZ9//nmKYkiYMkGSYbPZjKxZsxplypQxunbt6jA9wq1ujTk2NtZ48803jQoVKhgBAQGGv7+/UaFCBWPcuHEO+1y8eNFo166dkT17dkOSfcqA+Ph448MPPzQKFSpk+Pj4GJUqVTIWLFhgdOzY0WFagYSh+v/3v//dMZ4E27dvN5566ikje/bshq+vr1GiRAnjvffec9jmXj7DH3/80Shfvrzh6+trFC5c2Bg+fLgxefLkRMPEJzflR506dRJNU/D3338bderUMXx9fY38+fMb77//vvHVV1/d85QUCe+1c+fORu7cuQ1vb2+jXLlySQ49v2bNGqNy5cqGt7e3Q7tGRUXZ2zNbtmzGs88+axw7dixR26dkSopy5coZBQsWvON7qFu3rpE3b17j+vXryX4nEo61YcMGh/KE7/atUyRcv37dGDJkiBEaGmp4eXkZISEhRv/+/Y2rV6867BsXF2e89dZbRu7cuY3MmTMbDRs2NPbt25fslBS3Hzup72h0dLTRpEkTIyAgINFUCLe79TwfOXKkERISYvj4+BiPPvqo8ddffyW5z/Hjx42MGTMaDz30ULL13i65+G+Xkmvn0qVLjebNmxv58uUzvL29jXz58hlt27Y1/vnnH/s2EydONGrXrm3k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AADAg5EUAgAAAIAHIykEAAAAAA9GUggAAAAAHoykEAAAAAA8GEkhAAAAAHiwNJEUjh07VoULF5avr6+qV6+u9evX33H7WbNmqWTJkvL19VW5cuX0yy+/pFKkAAAAADyds/lLWuf2pHDGjBnq27evBg0apM2bN6tChQpq2LChTp48meT2a9asUdu2bdWlSxdt2bJFLVq0UIsWLbR9+/ZUjhwAAACAp3E2f0kPbIZhGO4MoHr16qpatao+//xzSVJ8fLxCQkL06quv6u233060fevWrXXp0iUtWLDAXlajRg1VrFhREyZMuOvxoqKiFBISIumIpAIueQ+GbC6px9rB7+3js7kzdNrNEre2m3RPbefOdpM456yi3azhu2od55w1tJs16bnd3MrtFwrXtF1CbnDkyBEVKJCy3MDZ/CU9yOTOg1+7dk2bNm1S//797WUZMmRQeHi41q5dm+Q+a9euVd++fR3KGjZsqHnz5iW5fWxsrGJjY+2vz58/L0ny8YmSzXbjHt+B6T/5uqQeKy4cPHhP+/u6L3TazSJ3tpt0b23nznaTOOesot2s4btqHeecNbSbNem53dwpwM0XCle1XXR0tCQzR8iaNau93MfHRz4+Pom2t5K/pAduTQpPnz6tuLg4BQYGOpQHBgZq9+7dSe4THR2d5PYJH+jtIiIiNGTIkETlsbFhFqNOLLfLarIgNNSdR78ntJs1bm03ibazinazhnazjrazhnazhnazJh23m9u5uO3Kli3r8HrQoEEaPHhwou2s5C/pgVuTwtTQv39/h57FGzduaNeuXQoJCVGGDPf+SOWFCxdUunRp7dy5UwEBAfdcn6eg3ayh3ayj7ayh3ayh3ayj7ayh3ayh3ax5kNotPj5ehw8fVunSpZUp083UKKlewgeZW5PC3LlzK2PGjDpx4oRD+YkTJxQUFJTkPkFBQU5tn1TXb61ate4hakcxMTGSpPz58zt0OePOaDdraDfraDtraDdraDfraDtraDdraDdrHrR2K1iwYIq3tZK/pAduHX3U29tblStX1tKlS+1l8fHxWrp0qcLCkr69MywszGF7SVqyZEmy2wMAAACAK1jJX9IDt98+2rdvX3Xs2FFVqlRRtWrVNGbMGF26dEmdO3eWJHXo0EH58+dXRESEJKlXr16qU6eORo4cqSZNmmj69OnauHGjJk2a5M63AQAA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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " 2024-07-09T17:05:31.000515\n", + " image/svg+xml\n", + " \n", + " \n", + " Matplotlib v3.8.2, https://matplotlib.org/\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n" + ], "text/plain": [ "
" ] @@ -761,7 +2420,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.11.7" } }, "nbformat": 4,