From 1108a3391261e6f673840723400a7eb69e60d98f Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Wed, 1 Mar 2023 23:23:18 +0000 Subject: [PATCH] Cleanup code a little --- notebooks/minimal-viable-alteration.ipynb | 77 ++++++++++++++++------- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/notebooks/minimal-viable-alteration.ipynb b/notebooks/minimal-viable-alteration.ipynb index 97e0948..15d8866 100644 --- a/notebooks/minimal-viable-alteration.ipynb +++ b/notebooks/minimal-viable-alteration.ipynb @@ -78,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 48, "outputs": [ { "name": "stderr", @@ -285,7 +285,19 @@ "/Users/joshuacoles/Library/Caches/pypoetry/virtualenvs/data-analysis-B4Au_hWl-py3.10/lib/python3.10/site-packages/pandas/core/arraylike.py:402: RuntimeWarning: divide by zero encountered in log\n", " result = getattr(ufunc, method)(*inputs, **kwargs)\n" ] - }, + } + ], + "source": [ + "dfs = read_all('/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/data-analysis/data/minimal-viable-alteration')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 49, + "outputs": [ { "data": { "text/plain": "
", @@ -296,7 +308,7 @@ } ], "source": [ - "for df in read_all('/Users/joshuacoles/Developer/checkouts/jc3091/CompB DLA/data-analysis/data/minimal-viable-alteration'):\n", + "for df in dfs:\n", " plt.plot(df.N, df.fd)\n", "\n", "plt.show()" @@ -307,24 +319,17 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 44, "outputs": [], "source": [ - "diffs = np.abs(np.ediff1d(a.fd))" - ], - "metadata": { - "collapsed": false - } - }, - { - "cell_type": "code", - "execution_count": 38, - "outputs": [], - "source": [ - "def ab(diffs, tol):\n", + "def convergent_tail_index(series, tol):\n", + " diffs = np.abs(np.ediff1d(a.fd))\n", " for i in range(0, len(diffs)):\n", " if np.max(diffs[i:]) <= tol:\n", - " return i" + " return i\n", + "\n", + " # No convergence found\n", + " return None" ], "metadata": { "collapsed": false @@ -332,19 +337,49 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 45, + "outputs": [], + "source": [ + "def compute_fd(df):\n", + " tail_index = convergent_tail_index(df.fd, 0.05)\n", + " return np.mean(a.fd[tail_index:])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 52, "outputs": [ { "data": { - "text/plain": "1.7001949312927631" + "text/plain": "[]" }, - "execution_count": 43, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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PaqysjItXrxY2dnZl3z0VFhYqIyMDEVERFzynIsXL9b+/fv1hz/8QSUlJZo2bZpGjBihKVOmBPoSAACAhQKOmoqKCiUmJioxMVGSlJeXp8TERC1dulSS1NDQ4ASOJPXv31+7du1SS0uLkpKSNHv2bKWnp+uNN97wu25VVZX27dt32Y+egoODdfjwYT388MMaOXKkcnJyNGHCBO3du5ffVQMAACRd443CN5NAbjQCAAA3hhvqRmEAAIDuQNQAAAArEDUAAMAKRA0AALACUQMAAKxA1AAAACsQNQAAwApEDQAAsAJRAwAArEDUAAAAKxA1AADACkQNAACwAlEDAACsQNQAAAArEDUAAMAKRA0AALACUQMAAKxA1AAAACsQNQAAwApEDQAAsAJRAwAArEDUAAAAKxA1AADACkQNAACwAlEDAACsQNQAAAArEDUAAMAKRA0AALACUQMAAKxA1AAAACsQNQAAwApEDQAAsAJRAwAArEDUAAAAKxA1AADACkQNAACwAlEDAACsQNQAAAArBBw1ZWVlSk9PV0xMjFwul4qLi7/yHJ/PpyVLlig+Pl5ut1sJCQkqKipyjq9du1Yul8tv69Onj981jDFaunSpoqOj1bdvX6WmpurDDz8MdPoAAMBSvQI9ob29XePHj1d2drYyMzM7dc6jjz6qpqYmFRYWasSIEWpoaFBHR4ffmNDQUFVVVTmPXS6X3/EVK1bojTfe0Lp16zRs2DC9+uqrmjJlio4ePXpJAAEAgK+fgKMmLS1NaWlpnR6/c+dOlZaWqqamRuHh4ZKkhISES8a5XC5FRUVd9hrGGK1cuVKvvPKKpk2bJklav369IiMjVVxcrMceeyzQlwEAACxz3e+p2b59u5KSkrRixQoNGTJEI0eO1AsvvKBz5875jWtra1N8fLxiY2M1bdo0vf/++86x2tpaNTY2KjU11dnn8XiUnJys8vLy6/0SAADATSDgd2oCVVNTo3379qlPnz7atm2bTp8+rWeffVbNzc1as2aNJOm2225TUVGRxo0bp9bWVr3++uu6++679f7772vo0KFqbGyUJEVGRvpdOzIy0jn253w+n3w+n/PY6/Vep1cIAABuBNf9nZqOjg65XC5t2LBBd955px588EH96Ec/0rp165x3a1JSUjR37lx961vf0n333aetW7dq0KBB+pd/+Zerft6CggJ5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z5eOcZnOpI8FOjo6VF9frwEDBsjlcnXptb1er2JjY3XixAmFhoZ26bXhj7XuPqx192Gtuw9r3X26aq2NMTpz5oxiYmIUFPTld818bd6pCQoK0tChQ6/rc4SGhvI/STdhrbsPa919WOvuw1p3n65Y6696h+YL3CgMAACsQNQAAAArEDVdwO1267vf/a7cbndPT8V6rHX3Ya27D2vdfVjr7tMTa/21uVEYAADYjXdqAACAFYgaAABgBaIGAABYgagBAABWIGqu0erVq5WQkKA+ffooOTlZBw8e7Okp3fQKCgp0xx13aMCAARo8eLAyMjJUVVXlN+azzz5Tbm6uIiIi1L9/f02fPl1NTU09NGN7LF++XC6XSwsXLnT2sdZd59SpU3r88ccVERGhvn376vbbb1dFRYVz3BijpUuXKjo6Wn379lVqaqo+/PDDHpzxzenixYt69dVXNWzYMPXt21fDhw/X97//fb+/HcRaX72ysjKlp6crJiZGLpdLxcXFfsc7s7affPKJZs+erdDQUIWFhSknJ0dtbW3XPjmDq7Zp0yYTEhJiioqKzPvvv2+efPJJExYWZpqamnp6aje1KVOmmDVr1pgjR46YyspK8+CDD5q4uDjT1tbmjHn66adNbGysKSkpMRUVFeauu+4yd999dw/O+uZ38OBBk5CQYMaNG2eef/55Zz9r3TU++eQTEx8fb+bNm2cOHDhgampqzH/913+Z6upqZ8zy5cuNx+MxxcXF5ve//715+OGHzbBhw8y5c+d6cOY3n9dee81ERESYt956y9TW1prNmzeb/v37m1WrVjljWOur9+tf/9osWbLEbN261Ugy27Zt8zvembWdOnWqGT9+vNm/f7/Zu3evGTFihJk5c+Y1z42ouQZ33nmnyc3NdR5fvHjRxMTEmIKCgh6clX0+/vhjI8mUlpYaY4xpaWkxvXv3Nps3b3bG/O///q+RZMrLy3tqmje1M2fOmG984xtm165d5r777nOihrXuOi+++KK55557rni8o6PDREVFmX/8x3909rW0tBi3223+/d//vTumaI2HHnrIZGdn++3LzMw0s2fPNsaw1l3pz6OmM2t79OhRI8m88847zpgdO3YYl8tlTp06dU3z4eOnq3T+/HkdOnRIqampzr6goCClpqaqvLy8B2dmn9bWVklSeHi4JOnQoUO6cOGC39qPGjVKcXFxrP1Vys3N1UMPPeS3phJr3ZW2b9+upKQkzZgxQ4MHD1ZiYqJ+9rOfOcdra2vV2Njot9Yej0fJycmsdYDuvvtulZSU6NixY5Kk3//+99q3b5/S0tIksdbXU2fWtry8XGFhYUpKSnLGpKamKigoSAcOHLim5//a/EHLrnb69GldvHhRkZGRfvsjIyP1wQcf9NCs7NPR0aGFCxdq4sSJGjt2rCSpsbFRISEhCgsL8xsbGRmpxsbGHpjlzW3Tpk363e9+p3feeeeSY6x116mpqdGbb76pvLw8vfzyy3rnnXf0d3/3dwoJCVFWVpaznpf7N4W1DsxLL70kr9erUaNGKTg4WBcvXtRrr72m2bNnSxJrfR11Zm0bGxs1ePBgv+O9evVSeHj4Na8/UYMbWm5uro4cOaJ9+/b19FSsdOLECT3//PPatWuX+vTp09PTsVpHR4eSkpL0D//wD5KkxMREHTlyRD/96U+VlZXVw7Ozyy9+8Qtt2LBBGzdu1JgxY1RZWamFCxcqJiaGtbYcHz9dpYEDByo4OPiSb4E0NTUpKiqqh2Zll+eee05vvfWWfvvb32ro0KHO/qioKJ0/f14tLS1+41n7wB06dEgff/yx/vIv/1K9evVSr169VFpaqjfeeEO9evVSZGQka91FoqOj9c1vftNv3+jRo1VXVydJznryb8q1W7x4sV566SU99thjuv322zVnzhwtWrRIBQUFkljr66kzaxsVFaWPP/7Y7/gf//hHffLJJ9e8/kTNVQoJCdGECRNUUlLi7Ovo6FBJSYlSUlJ6cGY3P2OMnnvuOW3btk1vv/22hg0b5nd8woQJ6t27t9/aV1VVqa6ujrUP0OTJk/Xee++psrLS2ZKSkjR79mznv1nrrjFx4sRLfjXBsWPHFB8fL0kaNmyYoqKi/Nba6/XqwIEDrHWAzp49q6Ag/x9vwcHB6ujokMRaX0+dWduUlBS1tLTo0KFDzpi3335bHR0dSk5OvrYJXNNtxl9zmzZtMm6326xdu9YcPXrUPPXUUyYsLMw0Njb29NRuas8884zxeDxmz549pqGhwdnOnj3rjHn66adNXFycefvtt01FRYVJSUkxKSkpPThre/zpt5+MYa27ysGDB02vXr3Ma6+9Zj788EOzYcMG069fP/Pzn//cGbN8+XITFhZmfvnLX5rDhw+badOm8TXjq5CVlWWGDBnifKV769atZuDAgeY73/mOM4a1vnpnzpwx7777rnn33XeNJPOjH/3IvPvuu+ajjz4yxnRubadOnWoSExPNgQMHzL59+8w3vvENvtJ9I/inf/onExcXZ0JCQsydd95p9u/f39NTuulJuuy2Zs0aZ8y5c+fMs88+a2655RbTr18/89d//demoaGh5yZtkT+PGta66/zqV78yY8eONW6324waNcr867/+q9/xjo4O8+qrr5rIyEjjdrvN5MmTTVVVVQ/N9ubl9XrN888/b+Li4kyfPn3MrbfeapYsWWJ8Pp8zhrW+er/97W8v+290VlaWMaZza9vc3Gxmzpxp+vfvb0JDQ838+fPNmTNnrnluLmP+5FcsAgAA3KS4pwYAAFiBqAEAAFYgagAAgBWIGgAAYAWiBgAAWIGoAQAAViBqAACAFYgaAABgBaIGAABYgagBAABWIGoAAIAViBoAAGCF/wdjg/woHIa15gAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "np.mean(a.fd[ab(diffs, 0.05):])" + "plt.plot([compute_fd(df) for df in dfs])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "Interesting that this produces the same value, I suppose we have convergence to the accuracy of a double?" ], "metadata": { "collapsed": false