{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Complexity of the algo matters" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "import random\n", "np.random.seed(1234)\n", "pd.set_option('max_rows',12)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def create_frame(N):\n", " return DataFrame(np.random.randn(N,2),columns=list('AB'))" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ "# need top/bottom 5 elements\n", "def by_sorting(df):\n", " s = df.A.order()\n", " return DataFrame({'min' : s.head(5).values, \n", " 'max' : s.tail(5).values })\n", "\n", "def by_n(df):\n", " return DataFrame({'min' : df.A.nsmallest(5).values, \n", " 'max' : df.A.nlargest(5).order().values })" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "N = 1e6\n", "df = create_frame(N)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result_by_sorting = by_sorting(df)\n", "result_by_n = by_n(df)\n", "result_by_sorting.equals(result_by_n)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | max | \n", "min | \n", "
---|---|---|
0 | \n", "4.339092 | \n", "-4.727822 | \n", "
1 | \n", "4.359975 | \n", "-4.622794 | \n", "
2 | \n", "4.447241 | \n", "-4.556683 | \n", "
3 | \n", "4.465920 | \n", "-4.504740 | \n", "
4 | \n", "5.190941 | \n", "-4.387650 | \n", "