Created
August 28, 2019 17:22
-
-
Save crusaderky/1b00fd68ae1ce79109b6af546c88bd4a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", | |
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", | |
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", | |
"<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n", | |
" -->\n", | |
"<!-- Title: %3 Pages: 1 -->\n", | |
"<svg width=\"536pt\" height=\"404pt\"\n", | |
" viewBox=\"0.00 0.00 536.30 404.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", | |
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n", | |
"<title>%3</title>\n", | |
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-400 532.2976,-400 532.2976,4 -4,4\"/>\n", | |
"<!-- dask -->\n", | |
"<g id=\"node1\" class=\"node\">\n", | |
"<title>dask</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"286\" cy=\"-234\" rx=\"32.4942\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"286\" y=\"-230.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">dask</text>\n", | |
"</g>\n", | |
"<!-- numpy -->\n", | |
"<g id=\"node2\" class=\"node\">\n", | |
"<title>numpy</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"245\" cy=\"-18\" rx=\"38.1938\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"245\" y=\"-14.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">numpy</text>\n", | |
"</g>\n", | |
"<!-- dask->numpy -->\n", | |
"<g id=\"edge1\" class=\"edge\">\n", | |
"<title>dask->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M282.5749,-215.9555C275.43,-178.3144 258.8919,-91.1867 250.3385,-46.1246\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"253.7477,-45.3169 248.4442,-36.1451 246.8705,-46.6224 253.7477,-45.3169\"/>\n", | |
"</g>\n", | |
"<!-- cupy -->\n", | |
"<g id=\"node3\" class=\"node\">\n", | |
"<title>cupy</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"60\" cy=\"-162\" rx=\"32.4942\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"60\" y=\"-158.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">cupy</text>\n", | |
"</g>\n", | |
"<!-- dask->cupy -->\n", | |
"<g id=\"edge2\" class=\"edge\">\n", | |
"<title>dask->cupy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M256.1407,-226.5616C219.2488,-217.0805 154.7677,-199.5564 101,-180 98.7809,-179.1929 96.5112,-178.3239 94.2342,-177.419\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"95.5207,-174.1636 84.9428,-173.5644 92.8382,-180.6292 95.5207,-174.1636\"/>\n", | |
"</g>\n", | |
"<!-- sparse -->\n", | |
"<g id=\"node4\" class=\"node\">\n", | |
"<title>sparse</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"154\" cy=\"-162\" rx=\"43.5923\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"154\" y=\"-158.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">sparse</text>\n", | |
"</g>\n", | |
"<!-- dask->sparse -->\n", | |
"<g id=\"edge3\" class=\"edge\">\n", | |
"<title>dask->sparse</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M262.7049,-221.2936C242.4497,-210.2453 212.7902,-194.0674 189.5669,-181.4001\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"191.151,-178.2774 180.696,-176.5615 187.799,-184.4227 191.151,-178.2774\"/>\n", | |
"</g>\n", | |
"<!-- numpy.ma -->\n", | |
"<g id=\"node5\" class=\"node\">\n", | |
"<title>numpy.ma</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"385\" cy=\"-90\" rx=\"54.6905\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"385\" y=\"-86.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">numpy.ma</text>\n", | |
"</g>\n", | |
"<!-- dask->numpy.ma -->\n", | |
"<g id=\"edge4\" class=\"edge\">\n", | |
"<title>dask->numpy.ma</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M290.2111,-215.8C295.2676,-196.6414 305.1129,-166.2341 321,-144 329.5694,-132.007 341.39,-121.0434 352.5423,-112.1749\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"354.6679,-114.9555 360.4886,-106.1028 350.4178,-109.3934 354.6679,-114.9555\"/>\n", | |
"</g>\n", | |
"<!-- pandas -->\n", | |
"<g id=\"node6\" class=\"node\">\n", | |
"<title>pandas</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"374\" cy=\"-162\" rx=\"43.5923\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"374\" y=\"-158.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">pandas</text>\n", | |
"</g>\n", | |
"<!-- dask->pandas -->\n", | |
"<g id=\"edge5\" class=\"edge\">\n", | |
"<title>dask->pandas</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M304.2337,-219.0816C316.438,-209.0962 332.7257,-195.7699 346.4941,-184.5048\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"348.7364,-187.1925 354.2596,-178.1512 344.3037,-181.7748 348.7364,-187.1925\"/>\n", | |
"</g>\n", | |
"<!-- cupy->numpy -->\n", | |
"<g id=\"edge6\" class=\"edge\">\n", | |
"<title>cupy->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M79.1015,-147.1318C111.8876,-121.6118 179.009,-69.3659 217.0592,-39.7485\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"219.4247,-42.3426 225.1661,-33.4383 215.125,-36.8187 219.4247,-42.3426\"/>\n", | |
"</g>\n", | |
"<!-- sparse->numpy -->\n", | |
"<g id=\"edge7\" class=\"edge\">\n", | |
"<title>sparse->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M165.1584,-144.3428C181.0038,-119.2687 210.1339,-73.1728 228.4855,-44.1328\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"231.6511,-45.6751 234.0346,-35.3519 225.7337,-41.9356 231.6511,-45.6751\"/>\n", | |
"</g>\n", | |
"<!-- numpy.ma->numpy -->\n", | |
"<g id=\"edge8\" class=\"edge\">\n", | |
"<title>numpy.ma->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M355.3096,-74.7307C333.2994,-63.4111 303.2235,-47.9435 280.0353,-36.0181\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"281.3758,-32.7718 270.8822,-31.3108 278.1743,-38.9969 281.3758,-32.7718\"/>\n", | |
"</g>\n", | |
"<!-- pandas->numpy -->\n", | |
"<g id=\"edge9\" class=\"edge\">\n", | |
"<title>pandas->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M356.9591,-145.289C346.4009,-134.7767 332.6747,-120.8205 321,-108 301.4173,-86.4954 280.137,-61.1078 265.089,-42.7884\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"267.6831,-40.4318 258.6421,-34.9082 262.2652,-44.8643 267.6831,-40.4318\"/>\n", | |
"</g>\n", | |
"<!-- pandas->numpy.ma -->\n", | |
"<g id=\"edge10\" class=\"edge\">\n", | |
"<title>pandas->numpy.ma</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M376.7758,-143.8314C377.9522,-136.131 379.3511,-126.9743 380.6586,-118.4166\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"384.1364,-118.8272 382.1869,-108.4133 377.2167,-117.7699 384.1364,-118.8272\"/>\n", | |
"</g>\n", | |
"<!-- jax -->\n", | |
"<g id=\"node7\" class=\"node\">\n", | |
"<title>jax</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"501\" cy=\"-234\" rx=\"27.0966\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"501\" y=\"-230.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">jax</text>\n", | |
"</g>\n", | |
"<!-- jax->numpy -->\n", | |
"<g id=\"edge11\" class=\"edge\">\n", | |
"<title>jax->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M500.5726,-215.748C498.7687,-182.2773 490.0212,-110.9484 449,-72 426.5829,-50.7156 345.0779,-34.0277 292.1248,-25.125\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"292.3764,-21.6194 281.9408,-23.4491 291.2398,-28.5265 292.3764,-21.6194\"/>\n", | |
"</g>\n", | |
"<!-- pint -->\n", | |
"<g id=\"node8\" class=\"node\">\n", | |
"<title>pint</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"226\" cy=\"-306\" rx=\"32.4942\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"226\" y=\"-302.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">pint</text>\n", | |
"</g>\n", | |
"<!-- pint->dask -->\n", | |
"<g id=\"edge12\" class=\"edge\">\n", | |
"<title>pint->dask</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M239.916,-289.3008C247.5645,-280.1226 257.1933,-268.568 265.6691,-258.3971\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"268.4464,-260.5316 272.1595,-250.6087 263.0688,-256.0502 268.4464,-260.5316\"/>\n", | |
"</g>\n", | |
"<!-- pint->numpy -->\n", | |
"<g id=\"edge14\" class=\"edge\">\n", | |
"<title>pint->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M227.1885,-287.9843C230.4007,-239.2939 239.2739,-104.7961 243.149,-46.0573\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"246.6459,-46.2176 243.8119,-36.0089 239.6611,-45.7568 246.6459,-46.2176\"/>\n", | |
"</g>\n", | |
"<!-- pint->cupy -->\n", | |
"<g id=\"edge15\" class=\"edge\">\n", | |
"<title>pint->cupy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" stroke-dasharray=\"5,2\" d=\"M208.2351,-290.5895C178.6561,-264.9306 119.2167,-213.3687 85.2791,-183.9289\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"87.4846,-181.2087 77.6372,-177.2997 82.8976,-186.4964 87.4846,-181.2087\"/>\n", | |
"</g>\n", | |
"<!-- pint->sparse -->\n", | |
"<g id=\"edge16\" class=\"edge\">\n", | |
"<title>pint->sparse</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" stroke-dasharray=\"5,2\" d=\"M217.3151,-288.6302C204.9491,-263.8982 182.1517,-218.3034 167.5517,-189.1034\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"170.5442,-187.2621 162.9415,-179.8831 164.2832,-190.3926 170.5442,-187.2621\"/>\n", | |
"</g>\n", | |
"<!-- pint->pandas -->\n", | |
"<g id=\"edge13\" class=\"edge\">\n", | |
"<title>pint->pandas</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M253.7041,-296.4409C275.7712,-287.6906 306.2928,-272.9094 327,-252 344.4281,-234.4017 356.8837,-209.0092 364.5749,-189.6798\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"367.8973,-190.7893 368.1638,-180.1978 361.3505,-188.3114 367.8973,-190.7893\"/>\n", | |
"</g>\n", | |
"<!-- xarray -->\n", | |
"<g id=\"node9\" class=\"node\">\n", | |
"<title>xarray</title>\n", | |
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"256\" cy=\"-378\" rx=\"43.5923\" ry=\"18\"/>\n", | |
"<text text-anchor=\"middle\" x=\"256\" y=\"-374.3\" font-family=\"Courier,monospace\" font-size=\"14.00\" fill=\"#000000\">xarray</text>\n", | |
"</g>\n", | |
"<!-- xarray->dask -->\n", | |
"<g id=\"edge17\" class=\"edge\">\n", | |
"<title>xarray->dask</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M259.7389,-360.0535C264.8589,-335.4774 274.104,-291.1008 280.1464,-262.0974\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"283.6008,-262.6764 282.214,-252.1727 276.748,-261.2487 283.6008,-262.6764\"/>\n", | |
"</g>\n", | |
"<!-- xarray->numpy -->\n", | |
"<g id=\"edge20\" class=\"edge\">\n", | |
"<title>xarray->numpy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M213.7268,-373.5408C141.0156,-363.2787 0,-330.8871 0,-234 0,-234 0,-234 0,-162 0,-71.2419 126.5029,-36.5626 197.7071,-24.2313\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.4918,-27.6492 207.7898,-22.57 197.3538,-20.7424 198.4918,-27.6492\"/>\n", | |
"</g>\n", | |
"<!-- xarray->cupy -->\n", | |
"<g id=\"edge18\" class=\"edge\">\n", | |
"<title>xarray->cupy</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" stroke-dasharray=\"5,2\" d=\"M226.2119,-364.7314C207.2082,-355.2638 182.8797,-341.1868 165,-324 122.9254,-283.5559 89.509,-223.1804 72.4386,-188.6996\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"75.5833,-187.1628 68.0638,-179.699 69.2876,-190.2229 75.5833,-187.1628\"/>\n", | |
"</g>\n", | |
"<!-- xarray->sparse -->\n", | |
"<g id=\"edge19\" class=\"edge\">\n", | |
"<title>xarray->sparse</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M228.6861,-363.8538C213.4702,-354.5599 195.524,-340.9808 185,-324 159.2739,-282.4901 154.0666,-224.3909 153.4568,-190.2276\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"156.9557,-190.0084 153.4001,-180.0281 149.9558,-190.0474 156.9557,-190.0084\"/>\n", | |
"</g>\n", | |
"<!-- xarray->numpy.ma -->\n", | |
"<g id=\"edge22\" class=\"edge\">\n", | |
"<title>xarray->numpy.ma</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M282.5358,-363.5684C298.8983,-353.8204 319.6207,-339.8648 335,-324 387.8617,-269.4698 405.7008,-252.8989 427,-180 431.4872,-164.6421 432.1926,-159.134 427,-144 423.378,-133.4436 416.7561,-123.3611 409.8246,-114.8271\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"412.3673,-112.417 403.1719,-107.1544 407.0785,-117.0027 412.3673,-112.417\"/>\n", | |
"</g>\n", | |
"<!-- xarray->pandas -->\n", | |
"<g id=\"edge21\" class=\"edge\">\n", | |
"<title>xarray->pandas</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M273.0225,-361.3188C295.1367,-338.6481 333.3495,-295.8808 354,-252 363.2298,-232.3874 368.2912,-208.3397 371.0116,-190.0374\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"374.4971,-190.3785 372.3566,-180.0022 367.5592,-189.4486 374.4971,-190.3785\"/>\n", | |
"</g>\n", | |
"<!-- xarray->jax -->\n", | |
"<g id=\"edge24\" class=\"edge\">\n", | |
"<title>xarray->jax</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" stroke-dasharray=\"5,2\" d=\"M296.9878,-371.413C349.1689,-362.3191 435.5032,-344.6774 460,-324 478.7708,-308.1558 489.3662,-281.9133 495.0615,-261.8426\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"498.4924,-262.5553 497.6105,-251.9972 491.7158,-260.8008 498.4924,-262.5553\"/>\n", | |
"</g>\n", | |
"<!-- xarray->pint -->\n", | |
"<g id=\"edge23\" class=\"edge\">\n", | |
"<title>xarray->pint</title>\n", | |
"<path fill=\"none\" stroke=\"#000000\" d=\"M248.5843,-360.2022C245.1693,-352.0064 241.0427,-342.1024 237.2561,-333.0145\"/>\n", | |
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"240.4074,-331.4776 233.3304,-323.593 233.9459,-334.17 240.4074,-331.4776\"/>\n", | |
"</g>\n", | |
"</g>\n", | |
"</svg>\n" | |
], | |
"text/plain": [ | |
"<graphviz.dot.Digraph at 0x10f415dd0>" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from graphviz import Digraph\n", | |
"\n", | |
"# libraries that only interact with NumPy are not listed, e.g.,\n", | |
"# TensorFlow, PyTorch, scipy.sparse\n", | |
"g = Digraph(node_attr={'fontname': 'courier'})\n", | |
"g.edge('dask', 'numpy')\n", | |
"g.edge('dask', 'cupy')\n", | |
"g.edge('dask', 'sparse')\n", | |
"g.edge('dask', 'numpy.ma')\n", | |
"g.edge('dask', 'pandas')\n", | |
"g.edge('cupy', 'numpy')\n", | |
"g.edge('sparse', 'numpy')\n", | |
"g.edge('numpy.ma', 'numpy')\n", | |
"g.edge('pandas', 'numpy')\n", | |
"g.edge('pandas', 'numpy.ma')\n", | |
"g.edge('jax', 'numpy')\n", | |
"g.edge('pint', 'dask')\n", | |
"g.edge('pint', 'pandas')\n", | |
"g.edge('pint', 'numpy')\n", | |
"g.edge('pint', 'cupy', style='dashed')\n", | |
"g.edge('pint', 'sparse', style='dashed')\n", | |
"g.edge('xarray', 'dask')\n", | |
"g.edge('xarray', 'cupy', style='dashed')\n", | |
"g.edge('xarray', 'sparse')\n", | |
"g.edge('xarray', 'numpy')\n", | |
"g.edge('xarray', 'pandas')\n", | |
"g.edge('xarray', 'numpy.ma')\n", | |
"g.edge('xarray', 'pint')\n", | |
"g.edge('xarray', 'jax', style='dashed')\n", | |
"g" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment