Skip to content

Conversation

@dalejung
Copy link
Contributor

@dalejung dalejung commented Apr 1, 2014

Wanted to get eyes on this. The original axis=1 2d methods were optimized for Fortran. I changed it to be friendly to C order and transposed the array when F ordered.

These timings are for master. cdf is just the consolidated dataframe to switch from C to F.

In [3]: %timeit a = df.take(indexes, axis=0) 10 loops, best of 3: 214 ms per loop In [4]: %timeit a = df.take(indexes, axis=1) 1 loops, best of 3: 978 ms per loop In [8]: %timeit cdf.take(indexes, axis=0) 1 loops, best of 3: 1.6 s per loop In [9]: %timeit cdf.take(indexes, axis=1) 1 loops, best of 3: 216 ms per loop 

http://nbviewer.ipython.org/gist/dalejung/9914956/pandas%20perf_baseline.ipynb

The PR timings are:

In [18]: %timeit a = df.take(indexes, axis=0) 10 loops, best of 3: 215 ms per loop In [19]: %timeit a = df.take(indexes, axis=1) 1 loops, best of 3: 265 ms per loop In [23]: %timeit cdf.take(indexes, axis=0) 1 loops, best of 3: 290 ms per loop In [24]: %timeit cdf.take(indexes, axis=1) 1 loops, best of 3: 222 ms per loop 

http://nbviewer.ipython.org/gist/dalejung/9914956/pandas%20perf.ipynb

It's similar behavior to the shift perf update.

For a numpy baseline i wrote:

# wrap np.take to reshape to C order def quick_take(values, indexer, axis=0): f_ordered = values.flags.f_contiguous if f_ordered: values = values.T axis = values.ndim - axis - 1 res = values.take(indexes, axis) if f_ordered: res = res.T return res %timeit quick_take(df.values, indexes, axis=0) 1 loops, best of 3: 234 ms per loop In [14]: %timeit quick_take(df.values, indexes, axis=1) 1 loops, best of 3: 271 ms per loop

Which are similar timings.

@dalejung
Copy link
Contributor Author

dalejung commented Apr 1, 2014

Invoked with : --ncalls: 3 --repeats: 30 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- frame_reindex_axis1 | 172.6970 | 595.6073 | 0.2900 | frame_dropna_axis1_all | 144.6463 | 205.5043 | 0.7039 | frame_reindex_upcast | 9.3623 | 11.2933 | 0.8290 | dataframe_reindex | 0.4346 | 0.4820 | 0.9017 | strings_lstrip | 4.4283 | 4.7480 | 0.9327 | merge_2intkey_nosort | 17.4209 | 18.4190 | 0.9458 | timeseries_timestamp_downsample_mean | 6.4660 | 6.8137 | 0.9490 | strings_strip | 4.7146 | 4.9167 | 0.9589 | strings_rstrip | 4.4110 | 4.5853 | 0.9620 | eval_frame_mult_all_threads | 12.1287 | 12.5806 | 0.9641 | groupby_multi_python | 136.9993 | 141.4537 | 0.9685 | frame_float_unequal | 0.0103 | 0.0106 | 0.9701 | dataframe_getitem_scalar | 0.0106 | 0.0110 | 0.9710 | strings_len | 2.3220 | 2.3909 | 0.9711 | timeseries_period_downsample_mean | 12.2347 | 12.5806 | 0.9725 | join_dataframe_index_single_key_bigger_sort | 17.5520 | 18.0403 | 0.9729 | frame_add_st | 5.4460 | 5.5974 | 0.9730 | frame_to_csv2 | 136.2824 | 139.8953 | 0.9742 | frame_xs_col | 0.0410 | 0.0420 | 0.9773 | index_int64_intersection | 20.4387 | 20.9096 | 0.9775 | timeseries_timestamp_tzinfo_cons | 0.0143 | 0.0146 | 0.9783 | timeseries_large_lookup_value | 0.0323 | 0.0330 | 0.9783 | reindex_frame_level_align | 1.0020 | 1.0240 | 0.9785 | reshape_stack_simple | 4.2873 | 4.3724 | 0.9806 | frame_to_csv | 65.4697 | 66.6877 | 0.9817 | frame_drop_dup_inplace | 3.3464 | 3.4046 | 0.9829 | reindex_frame_level_reindex | 0.9630 | 0.9793 | 0.9833 | frame_drop_dup_na_inplace | 3.0664 | 3.1174 | 0.9836 | eval_frame_add_all_threads | 12.3103 | 12.5103 | 0.9840 | frame_constructor_ndarray | 0.0649 | 0.0660 | 0.9843 | read_csv_standard | 9.5333 | 9.6677 | 0.9861 | timeseries_custom_bday_incr | 0.0226 | 0.0230 | 0.9862 | write_store_table | 30.7246 | 31.1450 | 0.9865 | packers_write_json | 27.8460 | 28.2156 | 0.9869 | timestamp_ops_diff2 | 16.8167 | 17.0294 | 0.9875 | indexing_dataframe_boolean_rows | 0.4234 | 0.4286 | 0.9878 | frame_mask_bools | 8.7430 | 8.8490 | 0.9880 | index_from_series_ctor | 0.0266 | 0.0269 | 0.9882 | groupby_apply_dict_return | 42.9560 | 43.4550 | 0.9885 | timestamp_ops_diff1 | 8.1547 | 8.2440 | 0.9892 | packers_read_json | 46.7120 | 47.2223 | 0.9892 | stats_rank_average | 29.5503 | 29.8529 | 0.9899 | series_align_left_monotonic | 12.9157 | 13.0377 | 0.9906 | read_store_table | 2.6170 | 2.6417 | 0.9906 | timeseries_asof_single | 0.0426 | 0.0430 | 0.9908 | series_ctor_from_dict | 2.9333 | 2.9593 | 0.9912 | join_dataframe_index_multi | 18.8997 | 19.0607 | 0.9916 | frame_reindex_both_axes | 31.4077 | 31.6637 | 0.9919 | frame_html_repr_trunc_si | 44.6730 | 45.0234 | 0.9922 | frame_ctor_list_of_dict | 72.5094 | 73.0770 | 0.9922 | frame_mult_no_ne | 6.8667 | 6.9203 | 0.9922 | stat_ops_level_frame_sum | 3.6527 | 3.6804 | 0.9925 | join_dataframe_integer_key | 1.9797 | 1.9944 | 0.9926 | merge_2intkey_sort | 40.4820 | 40.7730 | 0.9929 | strings_cat | 0.9297 | 0.9363 | 0.9929 | panel_from_dict_two_different_indexes | 90.0843 | 90.7311 | 0.9929 | eval_frame_chained_cmp_python_one_thread | 15.7200 | 15.8313 | 0.9930 | frame_mask_floats | 3.6370 | 3.6623 | 0.9931 | frame_ctor_dtindex_BDay(2) | 1.4997 | 1.5100 | 0.9932 | frame_shift_c_order_axis1 | 13.0819 | 13.1717 | 0.9932 | panel_from_dict_all_different_indexes | 111.8470 | 112.5783 | 0.9935 | panel_from_dict_same_index | 66.8850 | 67.3120 | 0.9937 | frame_dropna_axis0_all | 49.6593 | 49.9693 | 0.9938 | series_drop_duplicates_string | 0.5867 | 0.5903 | 0.9938 | groupby_sum_booleans | 1.2287 | 1.2364 | 0.9938 | frame_html_repr_trunc_mi | 57.8240 | 58.1820 | 0.9938 | frame_ctor_dtindex_BusinessDay(2) | 1.5000 | 1.5084 | 0.9944 | groupby_frame_apply_overhead | 11.3097 | 11.3720 | 0.9945 | series_value_counts_strings | 6.6687 | 6.7050 | 0.9946 | lib_fast_zip_fillna | 16.7677 | 16.8580 | 0.9946 | frame_to_html_mixed | 348.5590 | 350.2017 | 0.9953 | series_xs_mi_ix | 0.4439 | 0.4460 | 0.9954 | stats_corr_spearman | 88.3020 | 88.7047 | 0.9955 | frame_fancy_lookup_all | 13.7900 | 13.8527 | 0.9955 | timeseries_asof_nan | 3.2443 | 3.2589 | 0.9955 | append_frame_single_homogenous | 0.9163 | 0.9204 | 0.9956 | series_align_int64_index | 31.7033 | 31.8403 | 0.9957 | frame_ctor_nested_dict | 78.0060 | 78.3364 | 0.9958 | groupby_multi_size | 25.4073 | 25.5127 | 0.9959 | frame_ctor_dtindex_Micro(2) | 1.1150 | 1.1196 | 0.9959 | frame_sort_index_by_columns | 43.0884 | 43.2600 | 0.9960 | groupby_transform | 261.0149 | 262.0303 | 0.9961 | indexing_dataframe_boolean_st | 9.2977 | 9.3316 | 0.9964 | frame_ctor_dtindex_YearBegin(1) | 0.5447 | 0.5467 | 0.9964 | write_store | 6.0970 | 6.1186 | 0.9965 | strings_get | 3.9867 | 4.0007 | 0.9965 | groupby_frame_apply | 55.2750 | 55.4683 | 0.9965 | frame_ctor_dtindex_BQuarterEnd(1) | 1.5926 | 1.5980 | 0.9966 | join_dataframe_index_single_key_bigger | 7.5997 | 7.6247 | 0.9967 | concat_empty_frames1 | 0.8063 | 0.8090 | 0.9968 | lib_fast_zip | 12.7480 | 12.7893 | 0.9968 | eval_frame_add_python | 19.9850 | 20.0480 | 0.9969 | read_store_table_mixed | 11.6980 | 11.7333 | 0.9970 | read_csv_infer_datetime_format_ymd | 2.3833 | 2.3904 | 0.9970 | frame_drop_duplicates_na | 20.2130 | 20.2714 | 0.9971 | frame_insert_100_columns_begin | 28.7217 | 28.8037 | 0.9972 | write_csv_standard | 29.7790 | 29.8630 | 0.9972 | frame_apply_axis_1 | 123.7010 | 124.0477 | 0.9972 | frame_ctor_dtindex_BQuarterBegin(2) | 0.5376 | 0.5391 | 0.9973 | groupby_simple_compress_timing | 33.8264 | 33.9140 | 0.9974 | groupby_frame_cython_many_columns | 4.8986 | 4.9113 | 0.9974 | timeseries_infer_freq | 9.0553 | 9.0783 | 0.9975 | frame_ctor_dtindex_BMonthBegin(2) | 1.5794 | 1.5833 | 0.9975 | reshape_pivot_time_series | 167.8046 | 168.2260 | 0.9975 | groupby_multi_different_functions | 14.1083 | 14.1434 | 0.9975 | frame_ctor_dtindex_Second(2) | 1.1167 | 1.1194 | 0.9976 | frame_ctor_dtindex_Minute(1) | 1.1133 | 1.1160 | 0.9976 | series_timestamp_compare | 2.4130 | 2.4187 | 0.9977 | frame_ctor_dtindex_BYearBegin(1) | 0.5440 | 0.5453 | 0.9977 | reindex_daterange_backfill | 0.8890 | 0.8910 | 0.9977 | stat_ops_frame_mean_float_axis_1 | 0.7423 | 0.7439 | 0.9978 | dataframe_resample_max_string | 2.0150 | 2.0193 | 0.9978 | stats_rank2d_axis0_average | 21.1947 | 21.2403 | 0.9979 | index_str_boolean_series_indexer | 13.4553 | 13.4840 | 0.9979 | frame_ctor_dtindex_MonthEnd(2) | 1.5694 | 1.5726 | 0.9979 | write_store_table_panel | 39.9913 | 40.0740 | 0.9979 | frame_ctor_dtindex_Week(1) | 1.3196 | 1.3223 | 0.9980 | frame_ctor_dtindex_CustomBusinessDay(2) | 1.6061 | 1.6093 | 0.9980 | frame_ctor_dtindex_YearBegin(2) | 0.5449 | 0.5460 | 0.9981 | sparse_series_to_frame | 154.8424 | 155.1317 | 0.9981 | frame_ctor_dtindex_QuarterBegin(2) | 0.5387 | 0.5396 | 0.9982 | frame_ctor_dtindex_BMonthEnd(1) | 1.5833 | 1.5860 | 0.9983 | strings_center | 5.3107 | 5.3197 | 0.9983 | frame_ctor_dtindex_CDay(2) | 1.6054 | 1.6080 | 0.9984 | frame_xs_mi_ix | 0.4030 | 0.4036 | 0.9984 | timestamp_series_compare | 2.4243 | 2.4280 | 0.9985 | frame_ctor_dtindex_Micro(1) | 1.1160 | 1.1176 | 0.9985 | frame_fillna_many_columns_pad | 10.4940 | 10.5083 | 0.9986 | frame_ctor_dtindex_YearEnd(2) | 0.5449 | 0.5457 | 0.9987 | reindex_multiindex | 1.6233 | 1.6254 | 0.9987 | frame_ctor_dtindex_BMonthBegin(1) | 1.5877 | 1.5897 | 0.9988 | frame_ctor_dtindex_Hour(1) | 1.1210 | 1.1223 | 0.9988 | frame_iteritems | 46.4054 | 46.4610 | 0.9988 | datetimeindex_infer_dst | 3.1226 | 3.1263 | 0.9988 | frame_ctor_dtindex_YearEnd(1) | 0.5443 | 0.5449 | 0.9988 | concat_series_axis1 | 128.0177 | 128.1637 | 0.9989 | dataframe_resample_max_numpy | 2.0380 | 2.0403 | 0.9989 | period_setitem | 154.2040 | 154.3574 | 0.9990 | packers_read_hdf_table | 8.3334 | 8.3416 | 0.9990 | stat_ops_level_series_sum | 2.7250 | 2.7277 | 0.9990 | read_csv_thou_vb | 16.4090 | 16.4240 | 0.9991 | frame_assign_timeseries_index | 0.7410 | 0.7416 | 0.9991 | packers_write_hdf_table | 28.7956 | 28.8200 | 0.9992 | index_int64_union | 67.7147 | 67.7656 | 0.9992 | frame_dropna_axis1_any | 109.8917 | 109.9737 | 0.9993 | frame_ctor_dtindex_BYearEnd(2) | 0.5426 | 0.5430 | 0.9993 | groupby_multi_cython | 16.0964 | 16.1073 | 0.9993 | frame_ctor_dtindex_CustomBusinessDay(1) | 1.6040 | 1.6050 | 0.9994 | frame_ctor_dtindex_Milli(1) | 1.1183 | 1.1191 | 0.9994 | frame_ctor_dtindex_QuarterEnd(2) | 0.5383 | 0.5387 | 0.9994 | frame_ctor_dtindex_BYearEnd(1) | 0.5440 | 0.5443 | 0.9994 | frame_ctor_dtindex_Minute(2) | 1.1160 | 1.1167 | 0.9994 | read_table_multiple_date_baseline | 97.4894 | 97.5444 | 0.9994 | read_store_table_panel | 18.2164 | 18.2254 | 0.9995 | frame_ctor_dtindex_Week(2) | 1.3257 | 1.3263 | 0.9995 | strings_contains_few_noregex | 2.9783 | 2.9797 | 0.9995 | frame_loc_dups | 0.7633 | 0.7637 | 0.9996 | frame_ctor_dtindex_QuarterEnd(1) | 1.5860 | 1.5867 | 0.9996 | stats_rolling_mean | 1.0200 | 1.0204 | 0.9996 | frame_object_equal | 3.9546 | 3.9560 | 0.9997 | frame_apply_pass_thru | 7.2140 | 7.2164 | 0.9997 | groupby_last_float32 | 3.9434 | 3.9446 | 0.9997 | frame_multi_and_st | 39.0650 | 39.0767 | 0.9997 | eval_frame_and_python_one_thread | 51.9513 | 51.9644 | 0.9997 | plot_timeseries_period | 67.7586 | 67.7737 | 0.9998 | datetime_index_intersection | 0.3716 | 0.3717 | 0.9998 | frame_fillna_inplace | 9.4000 | 9.4016 | 0.9998 | unstack_sparse_keyspace | 1.9177 | 1.9180 | 0.9998 | frame_ctor_dtindex_BQuarterEnd(2) | 0.5416 | 0.5417 | 0.9999 | reindex_fillna_pad_float32 | 0.3040 | 0.3040 | 1.0000 | frame_from_series | 0.0816 | 0.0816 | 1.0000 | frame_object_unequal | 0.0103 | 0.0103 | 1.0000 | datamatrix_getitem_scalar | 0.0110 | 0.0110 | 1.0000 | datetimeindex_converter | 0.8373 | 0.8373 | 1.0000 | timeseries_slice_minutely | 0.0830 | 0.0830 | 1.0000 | timeseries_custom_bday_incr_n | 0.0370 | 0.0370 | 1.0000 | stat_ops_frame_sum_int_axis_1 | 0.4063 | 0.4063 | 1.0000 | match_strings | 0.4803 | 0.4803 | 1.0000 | timeseries_1min_5min_ohlc | 0.7917 | 0.7917 | 1.0000 | dtindex_from_series_ctor | 0.0170 | 0.0170 | 1.0000 | frame_xs_row | 0.0620 | 0.0620 | 1.0000 | stat_ops_frame_mean_float_axis_0 | 0.5647 | 0.5647 | 1.0000 | reindex_fillna_pad | 0.3564 | 0.3564 | 1.0000 | series_constructor_ndarray | 0.0230 | 0.0230 | 1.0000 | frame_to_string_floats | 48.3750 | 48.3743 | 1.0000 | frame_ctor_dtindex_Day(1) | 1.1110 | 1.1110 | 1.0001 | packers_read_hdf_store | 4.4007 | 4.4003 | 1.0001 | frame_dropna_axis0_any | 25.8860 | 25.8826 | 1.0001 | eval_frame_chained_cmp_all_threads | 30.3690 | 30.3647 | 1.0001 | sort_level_zero | 4.4063 | 4.4057 | 1.0001 | timeseries_asof | 3.3503 | 3.3497 | 1.0002 | frame_ctor_dtindex_CDay(1) | 1.6097 | 1.6093 | 1.0002 | frame_ctor_dtindex_MonthEnd(1) | 1.5730 | 1.5726 | 1.0003 | frame_iloc_dups | 0.2860 | 0.2859 | 1.0003 | stats_rank_average_int | 19.0936 | 19.0880 | 1.0003 | index_str_boolean_indexer | 13.5217 | 13.5176 | 1.0003 | timeseries_sort_index | 7.8866 | 7.8843 | 1.0003 | timeseries_to_datetime_YYYYMMDD | 9.8870 | 9.8836 | 1.0003 | packers_write_pickle | 6.7976 | 6.7953 | 1.0003 | stats_rank2d_axis1_average | 11.8227 | 11.8186 | 1.0003 | groupby_first | 3.6093 | 3.6077 | 1.0005 | write_store_table_dc | 123.4723 | 123.4147 | 1.0005 | sort_level_one | 4.4014 | 4.3993 | 1.0005 | timeseries_add_irregular | 12.3976 | 12.3916 | 1.0005 | read_table_multiple_date | 216.1180 | 216.0130 | 1.0005 | frame_interpolate_some_good_infer | 3.2706 | 3.2690 | 1.0005 | packers_read_pickle | 0.8057 | 0.8053 | 1.0005 | frame_apply_ref_by_name | 15.0297 | 15.0209 | 1.0006 | stat_ops_frame_mean_int_axis_1 | 0.6550 | 0.6546 | 1.0006 | groupby_pivot_table | 20.0547 | 20.0413 | 1.0007 | eval_frame_and_all_threads | 12.4223 | 12.4140 | 1.0007 | groupby_multi_series_op | 14.5477 | 14.5353 | 1.0008 | frame_mult_st | 7.6783 | 7.6717 | 1.0009 | reindex_fillna_backfill | 0.3563 | 0.3560 | 1.0009 | groupby_first_float32 | 3.6036 | 3.6004 | 1.0009 | groupby_last | 3.9454 | 3.9416 | 1.0009 | frame_ctor_dtindex_MonthBegin(2) | 1.5587 | 1.5570 | 1.0011 | melt_dataframe | 2.1307 | 2.1284 | 1.0011 | frame_multi_and | 22.3356 | 22.3114 | 1.0011 | dataframe_resample_mean_string | 2.4147 | 2.4120 | 1.0011 | read_store | 2.1070 | 2.1046 | 1.0011 | frame_ctor_dtindex_Day(2) | 1.1203 | 1.1191 | 1.0011 | groupby_multi_different_numpy_functions | 14.0953 | 14.0790 | 1.0012 | frame_interpolate | 84.4336 | 84.3337 | 1.0012 | frame_dtypes | 0.2523 | 0.2520 | 1.0013 | reindex_fillna_backfill_float32 | 0.3050 | 0.3046 | 1.0013 | frame_ctor_dtindex_MonthBegin(1) | 1.5640 | 1.5620 | 1.0013 | eval_frame_mult_python_one_thread | 19.7110 | 19.6843 | 1.0014 | stat_ops_frame_sum_float_axis_1 | 0.6903 | 0.6893 | 1.0014 | frame_interpolate_some_good | 1.4330 | 1.4310 | 1.0014 | frame_ctor_dtindex_QuarterBegin(1) | 1.5803 | 1.5780 | 1.0015 | groupby_frame_singlekey_integer | 2.7324 | 2.7283 | 1.0015 | frame_shift_c_order_axis0 | 15.4463 | 15.4233 | 1.0015 | concat_empty_frames2 | 0.8097 | 0.8084 | 1.0016 | frame_ctor_dtindex_BYearBegin(2) | 0.5469 | 0.5461 | 1.0016 | frame_isnull | 0.7799 | 0.7787 | 1.0016 | stat_ops_frame_mean_int_axis_0 | 0.5786 | 0.5777 | 1.0017 | indexing_dataframe_boolean_no_ne | 42.5540 | 42.4827 | 1.0017 | frame_reindex_axis0 | 126.7564 | 126.5417 | 1.0017 | strings_join_split | 43.2854 | 43.2090 | 1.0018 | dataframe_resample_mean_numpy | 2.4337 | 2.4293 | 1.0018 | query_store_table_wide | 11.4954 | 11.4744 | 1.0018 | dataframe_resample_min_string | 2.0407 | 2.0370 | 1.0018 | frame_ctor_dtindex_Nano(2) | 1.5463 | 1.5434 | 1.0019 | strings_pad | 5.2984 | 5.2883 | 1.0019 | stat_ops_series_std | 0.1984 | 0.1980 | 1.0020 | strings_extract | 51.9197 | 51.8146 | 1.0020 | stat_ops_frame_sum_int_axis_0 | 0.4679 | 0.4670 | 1.0020 | read_store_table_wide | 15.1873 | 15.1550 | 1.0021 | stat_ops_level_frame_sum_multiple | 8.0823 | 8.0651 | 1.0021 | frame_nonunique_equal | 3.9580 | 3.9493 | 1.0022 | strings_count | 7.8460 | 7.8280 | 1.0023 | datetimeindex_normalize | 2.9037 | 2.8970 | 1.0023 | stat_ops_frame_sum_float_axis_0 | 0.5713 | 0.5700 | 1.0024 | frame_insert_500_columns_end | 139.0290 | 138.6960 | 1.0024 | frame_ctor_dtindex_Milli(2) | 1.1177 | 1.1150 | 1.0024 | strings_title | 9.2390 | 9.2160 | 1.0025 | frame_ctor_dtindex_BusinessDay(1) | 1.4623 | 1.4586 | 1.0025 | frame_get_numeric_data | 0.1517 | 0.1513 | 1.0026 | indexing_panel_subset | 1.0956 | 1.0927 | 1.0027 | datetime_index_union | 0.0869 | 0.0867 | 1.0027 | groupby_series_simple_cython | 284.3726 | 283.5876 | 1.0028 | join_dataframe_integer_2key | 5.9303 | 5.9137 | 1.0028 | frame_ctor_dtindex_Nano(1) | 1.5390 | 1.5346 | 1.0028 | frame_ctor_dtindex_BQuarterBegin(1) | 1.6077 | 1.6030 | 1.0029 | frame_iteritems_cached | 0.9157 | 0.9130 | 1.0030 | frame_ctor_dtindex_Second(1) | 1.1164 | 1.1130 | 1.0030 | eval_frame_mult_one_thread | 12.4573 | 12.4200 | 1.0030 | stat_ops_level_series_sum_multiple | 7.1277 | 7.1063 | 1.0030 | replace_replacena | 0.8780 | 0.8753 | 1.0031 | read_csv_infer_datetime_format_iso8601 | 2.0576 | 2.0510 | 1.0032 | strings_findall | 9.8810 | 9.8487 | 1.0033 | series_drop_duplicates_int | 0.7973 | 0.7946 | 1.0033 | dti_reset_index | 0.2870 | 0.2860 | 1.0033 | panel_from_dict_equiv_indexes | 67.9600 | 67.7280 | 1.0034 | frame_apply_lambda_mean | 4.1793 | 4.1650 | 1.0034 | indexing_dataframe_boolean | 6.9893 | 6.9650 | 1.0035 | strings_contains_many_noregex | 3.0737 | 3.0630 | 1.0035 | frame_ctor_dtindex_Hour(2) | 1.1203 | 1.1164 | 1.0036 | write_store_mixed | 16.2366 | 16.1780 | 1.0036 | frame_ctor_dtindex_BDay(1) | 1.4683 | 1.4630 | 1.0036 | append_frame_single_mixed | 1.2569 | 1.2523 | 1.0037 | packers_write_hdf_store | 10.2596 | 10.2213 | 1.0037 | series_getitem_label_slice | 0.0793 | 0.0790 | 1.0040 | frame_float_equal | 2.7170 | 2.7057 | 1.0042 | frame_repr_wide | 20.7680 | 20.6776 | 1.0044 | strings_upper | 5.8987 | 5.8710 | 1.0047 | series_getitem_pos_slice | 0.0673 | 0.0670 | 1.0047 | frame_shift_axis1 | 19.5514 | 19.4554 | 1.0049 | query_store_table | 5.2343 | 5.2083 | 1.0050 | frame_iloc_big | 0.2493 | 0.2480 | 1.0051 | dataframe_resample_min_numpy | 2.0610 | 2.0499 | 1.0054 | frame_apply_user_func | 117.4324 | 116.7930 | 1.0055 | datetimeindex_unique | 0.1303 | 0.1296 | 1.0055 | strings_lower | 6.2310 | 6.1950 | 1.0058 | read_csv_infer_datetime_format_custom | 11.8827 | 11.8103 | 1.0061 | frame_ctor_dtindex_BMonthEnd(2) | 1.5857 | 1.5759 | 1.0062 | datetimeindex_add_offset | 0.2190 | 0.2177 | 1.0062 | indexing_dataframe_boolean_rows_object | 0.6474 | 0.6433 | 1.0063 | timeseries_1min_5min_mean | 0.7460 | 0.7413 | 1.0063 | replace_fillna | 1.6043 | 1.5941 | 1.0064 | groupby_frame_median | 6.4847 | 6.4427 | 1.0065 | frame_shift_axis0 | 13.9407 | 13.8486 | 1.0067 | frame_boolean_row_select | 0.2946 | 0.2926 | 1.0068 | concat_small_frames | 26.4690 | 26.2670 | 1.0077 | read_parse_dates_iso8601 | 1.4459 | 1.4346 | 1.0079 | frame_get_dtype_counts | 0.1190 | 0.1180 | 1.0081 | frame_ctor_nested_dict_int64 | 100.6647 | 99.8387 | 1.0083 | strings_repeat | 5.6610 | 5.6136 | 1.0084 | groupby_indices | 5.9257 | 5.8757 | 1.0085 | write_store_table_wide | 87.2397 | 86.4693 | 1.0089 | series_align_irregular_string | 67.5964 | 66.9713 | 1.0093 | frame_multi_and_no_ne | 26.9314 | 26.6770 | 1.0095 | frame_repr_tall | 32.6703 | 32.3400 | 1.0102 | strings_match | 7.6150 | 7.5373 | 1.0103 | eval_frame_add_one_thread | 14.7073 | 14.5477 | 1.0110 | read_csv_vb | 15.8533 | 15.6797 | 1.0111 | write_store_table_mixed | 37.2656 | 36.8490 | 1.0113 | frame_getitem_single_column2 | 35.4207 | 35.0166 | 1.0115 | packers_read_csv | 40.6150 | 40.1409 | 1.0118 | frame_apply_np_mean | 4.2580 | 4.2063 | 1.0123 | sparse_frame_constructor | 11.6076 | 11.4660 | 1.0124 | reindex_daterange_pad | 0.8899 | 0.8790 | 1.0125 | frame_drop_duplicates | 20.2003 | 19.9424 | 1.0129 | strings_contains_many | 7.1287 | 7.0376 | 1.0129 | ctor_index_array_string | 0.0243 | 0.0240 | 1.0132 | frame_to_csv_mixed | 232.1160 | 229.0683 | 1.0133 | packers_read_json_date_index | 47.1913 | 46.5367 | 1.0141 | eval_frame_add_python_one_thread | 24.2343 | 23.8810 | 1.0148 | strings_startswith | 5.0614 | 4.9853 | 1.0153 | index_datetime_union | 11.7980 | 11.6123 | 1.0160 | frame_getitem_single_column | 34.7493 | 34.1580 | 1.0173 | reshape_unstack_simple | 3.6550 | 3.5890 | 1.0184 | strings_contains_few | 6.9930 | 6.8547 | 1.0202 | frame_add | 5.1943 | 5.0880 | 1.0209 | frame_reindex_both_axes_ix | 31.3984 | 30.7384 | 1.0215 | frame_to_csv_date_formatting | 20.2413 | 19.8110 | 1.0217 | frame_add_no_ne | 7.1456 | 6.9933 | 1.0218 | index_datetime_intersection | 11.8546 | 11.5840 | 1.0234 | packers_write_json_date_index | 37.8737 | 37.0010 | 1.0236 | frame_reindex_columns | 0.4276 | 0.4174 | 1.0246 | series_value_counts_int64 | 2.5543 | 2.4906 | 1.0256 | frame_mult | 5.2520 | 5.1160 | 1.0266 | dti_reset_index_tz | 9.1674 | 8.9293 | 1.0267 | frame_fancy_lookup | 4.8500 | 4.7237 | 1.0267 | frame_nonunique_unequal | 0.0120 | 0.0117 | 1.0272 | packers_write_pack | 6.6463 | 6.3874 | 1.0405 | stats_rank_pct_average | 30.9920 | 29.7240 | 1.0427 | read_store_mixed | 4.8457 | 4.6323 | 1.0461 | strings_replace | 17.0190 | 16.2450 | 1.0476 | timeseries_to_datetime_iso8601 | 4.7040 | 4.4406 | 1.0593 | strings_endswith | 5.3353 | 5.0177 | 1.0633 | packers_write_csv | 421.1750 | 396.0840 | 1.0633 | read_csv_comment2 | 20.1430 | 18.7890 | 1.0721 | series_string_vector_slice | 238.1326 | 219.2190 | 1.0863 | packers_read_pack | 4.6300 | 4.1910 | 1.1048 | strings_slice | 3.4977 | 3.1296 | 1.1176 | join_dataframe_index_single_key_small | 7.4120 | 6.6146 | 1.1206 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- Ratio < 1.0 means the target commit is faster then the baseline. Seed used: 1234 Target [6768097] : PRF: Optimize 2d take operations. Base [2e18d1a] : Merge pull request #6746 from jorisvandenbossche/doc-fixes 
@jreback
Copy link
Contributor

jreback commented Apr 1, 2014

yep...I tried to do the same but on the cython level (and using memoryviews...but was complicated)...

this could be a simpler soln.

pls add a couple of vbenches that exercise this if you can by doing a take then other operations.

e.g. reindex, then do stuff with that (on both axes).

@dalejung
Copy link
Contributor Author

dalejung commented Apr 1, 2014

Is there an optimal way to run vbench. When I rerun the overs I usually get back to 1.0.

------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- join_dataframe_index_single_key_small | 7.1377 | 7.1360 | 1.0002 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- 

Maybe set n to like 100 :/

@jreback
Copy link
Contributor

jreback commented Apr 1, 2014

test.perf -b master -h HEAD (optionally add -r reindex (-r is a regex to match for the test name)

@jreback jreback added this to the 0.14.0 milestone Apr 1, 2014
@dalejung
Copy link
Contributor Author

dalejung commented Apr 1, 2014

@jreback are we able to use memoryviews? Not sure what version of cython they were introduced.

@jreback
Copy link
Contributor

jreback commented Apr 1, 2014

yes

@jreback
Copy link
Contributor

jreback commented Apr 1, 2014

FYI pandas already requires cython 0.17.1 or higher.

@jreback
Copy link
Contributor

jreback commented Apr 3, 2014

can you post another vbench run after your latest changes

@jreback
Copy link
Contributor

jreback commented Apr 5, 2014

@dalejung
Copy link
Contributor Author

dalejung commented Apr 6, 2014

 Invoked with : --ncalls: 3 --repeats: 30 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- frame_reindex_axis1 | 161.9873 | 596.8970 | 0.2714 | frame_dropna_axis1_all | 144.7953 | 203.2680 | 0.7123 | frame_reindex_upcast | 8.9600 | 10.6750 | 0.8393 | stat_ops_frame_sum_int_axis_1 | 0.4070 | 0.4547 | 0.8951 | timeseries_timestamp_downsample_mean | 6.1173 | 6.8336 | 0.8952 | dataframe_reindex | 0.4296 | 0.4793 | 0.8964 | stat_ops_frame_sum_int_axis_0 | 0.4680 | 0.5193 | 0.9013 | eval_frame_add_python_one_thread | 22.6173 | 24.9236 | 0.9075 | stats_rank_average | 26.6620 | 29.1460 | 0.9148 | join_dataframe_index_single_key_bigger_sort | 16.5907 | 18.1260 | 0.9153 | merge_2intkey_nosort | 17.0686 | 18.4836 | 0.9234 | join_dataframe_index_single_key_bigger | 7.1634 | 7.6319 | 0.9386 | reindex_frame_level_reindex | 0.9363 | 0.9827 | 0.9528 | reindex_frame_level_align | 0.9776 | 1.0210 | 0.9575 | frame_drop_duplicates | 19.2594 | 20.0953 | 0.9584 | frame_sort_index_by_columns | 43.1167 | 44.6687 | 0.9653 | strings_rstrip | 4.3994 | 4.5523 | 0.9664 | stats_rank2d_axis1_average | 11.5054 | 11.8440 | 0.9714 | timeseries_period_downsample_mean | 11.9210 | 12.2491 | 0.9732 | merge_2intkey_sort | 39.8699 | 40.9580 | 0.9734 | eval_frame_add_one_thread | 14.3417 | 14.7220 | 0.9742 | stats_rolling_mean | 0.9956 | 1.0196 | 0.9765 | index_int64_intersection | 20.5270 | 21.0017 | 0.9774 | reshape_pivot_time_series | 168.5187 | 172.3447 | 0.9778 | join_dataframe_index_multi | 18.5653 | 18.9774 | 0.9783 | read_store_table_panel | 17.9550 | 18.3520 | 0.9784 | stats_rank_pct_average | 29.9773 | 30.6287 | 0.9787 | eval_frame_mult_all_threads | 12.1473 | 12.4009 | 0.9796 | read_csv_infer_datetime_format_iso8601 | 2.0573 | 2.0980 | 0.9806 | groupby_frame_median | 6.3333 | 6.4557 | 0.9810 | strings_len | 2.3216 | 2.3647 | 0.9818 | stats_rank2d_axis0_average | 20.8390 | 21.2220 | 0.9820 | timeseries_asof_single | 0.0423 | 0.0430 | 0.9834 | strings_get | 3.9299 | 3.9887 | 0.9853 | eval_frame_add_all_threads | 12.2967 | 12.4756 | 0.9857 | match_strings | 0.4696 | 0.4764 | 0.9858 | eval_frame_mult_one_thread | 12.1253 | 12.2777 | 0.9876 | timestamp_ops_diff1 | 8.1716 | 8.2730 | 0.9878 | frame_drop_dup_na_inplace | 3.0960 | 3.1323 | 0.9884 | series_align_left_monotonic | 12.9147 | 13.0640 | 0.9886 | frame_ctor_list_of_dict | 73.8150 | 74.6477 | 0.9888 | timestamp_ops_diff2 | 16.9313 | 17.1210 | 0.9889 | frame_from_records_generator_nrows | 0.9956 | 1.0067 | 0.9890 | groupby_first_float32 | 3.5650 | 3.6036 | 0.9893 | frame_ctor_nested_dict | 77.4340 | 78.2530 | 0.9895 | timeseries_to_datetime_YYYYMMDD | 10.0493 | 10.1523 | 0.9899 | groupby_multi_size | 25.4339 | 25.6933 | 0.9899 | eval_frame_add_python | 19.9107 | 20.1123 | 0.9900 | period_setitem | 155.1817 | 156.7337 | 0.9901 | frame_drop_dup_inplace | 3.3764 | 3.4097 | 0.9902 | strings_match | 7.5570 | 7.6313 | 0.9903 | join_dataframe_integer_key | 1.9650 | 1.9844 | 0.9903 | stats_rank_average_int | 19.0360 | 19.2153 | 0.9907 | groupby_first | 3.5860 | 3.6197 | 0.9907 | groupby_last | 3.9177 | 3.9517 | 0.9914 | reindex_daterange_pad | 0.8866 | 0.8937 | 0.9921 | frame_float_equal | 2.7111 | 2.7307 | 0.9928 | timeseries_1min_5min_mean | 0.7380 | 0.7433 | 0.9928 | frame_multi_and | 22.3370 | 22.4960 | 0.9929 | index_datetime_intersection | 11.7869 | 11.8707 | 0.9929 | groupby_frame_apply_overhead | 11.3223 | 11.4006 | 0.9931 | frame_from_records_generator | 75.7264 | 76.2459 | 0.9932 | strings_strip | 4.9466 | 4.9800 | 0.9933 | write_csv_standard | 30.0177 | 30.2196 | 0.9933 | strings_join_split | 44.4183 | 44.7097 | 0.9935 | stats_corr_spearman | 87.8250 | 88.3840 | 0.9937 | eval_frame_mult_python_one_thread | 20.0787 | 20.2026 | 0.9939 | write_store_mixed | 16.0327 | 16.1280 | 0.9941 | index_int64_union | 67.7144 | 68.1144 | 0.9941 | groupby_last_float32 | 3.9183 | 3.9397 | 0.9946 | index_datetime_union | 11.8107 | 11.8747 | 0.9946 | packers_read_hdf_table | 8.4910 | 8.5340 | 0.9950 | groupby_frame_apply | 55.2750 | 55.5527 | 0.9950 | strings_contains_many_noregex | 3.0470 | 3.0620 | 0.9951 | read_csv_infer_datetime_format_ymd | 2.4210 | 2.4327 | 0.9952 | frame_drop_duplicates_na | 20.4996 | 20.5936 | 0.9954 | lib_fast_zip | 12.9480 | 13.0057 | 0.9956 | series_ctor_from_dict | 2.9399 | 2.9527 | 0.9957 | groupby_multi_cython | 15.9953 | 16.0600 | 0.9960 | frame_multi_and_st | 39.1577 | 39.3039 | 0.9963 | write_store_table | 31.0690 | 31.1753 | 0.9966 | frame_multi_and_no_ne | 26.7936 | 26.8817 | 0.9967 | frame_getitem_single_column2 | 35.7570 | 35.8740 | 0.9967 | packers_write_json_date_index | 37.7433 | 37.8536 | 0.9971 | read_table_multiple_date_baseline | 98.4277 | 98.7030 | 0.9972 | groupby_pivot_table | 19.9510 | 20.0047 | 0.9973 | write_store | 6.1210 | 6.1374 | 0.9973 | series_value_counts_int64 | 2.4997 | 2.5063 | 0.9973 | frame_mult | 5.3116 | 5.3246 | 0.9976 | indexing_dataframe_boolean | 6.9980 | 7.0150 | 0.9976 | stat_ops_frame_mean_int_axis_0 | 0.5767 | 0.5780 | 0.9977 | read_csv_infer_datetime_format_custom | 11.7443 | 11.7693 | 0.9979 | frame_fillna_many_columns_pad | 10.5433 | 10.5623 | 0.9982 | frame_to_csv_date_formatting | 19.5770 | 19.6106 | 0.9983 | series_drop_duplicates_int | 0.7933 | 0.7946 | 0.9983 | index_str_boolean_series_indexer | 13.5113 | 13.5330 | 0.9984 | sort_level_one | 4.3874 | 4.3941 | 0.9985 | timeseries_asof | 3.3503 | 3.3550 | 0.9986 | read_store | 2.1060 | 2.1090 | 0.9986 | timeseries_1min_5min_ohlc | 0.7907 | 0.7917 | 0.9987 | frame_nonunique_equal | 3.9597 | 3.9643 | 0.9988 | frame_to_csv2 | 140.0643 | 140.1927 | 0.9991 | read_table_multiple_date | 218.2817 | 218.4597 | 0.9992 | read_store_table_wide | 15.3497 | 15.3620 | 0.9992 | write_store_table_panel | 40.2563 | 40.2873 | 0.9992 | groupby_multi_series_op | 14.5586 | 14.5679 | 0.9994 | packers_read_json_date_index | 47.5393 | 47.5670 | 0.9994 | reshape_unstack_simple | 3.5070 | 3.5087 | 0.9995 | groupby_frame_singlekey_integer | 2.7194 | 2.7207 | 0.9995 | groupby_multi_different_numpy_functions | 14.1366 | 14.1377 | 0.9999 | dtindex_from_series_ctor | 0.0173 | 0.0173 | 1.0000 | timeseries_timestamp_tzinfo_cons | 0.0143 | 0.0143 | 1.0000 | series_getitem_label_slice | 0.0796 | 0.0796 | 1.0000 | datamatrix_getitem_scalar | 0.0110 | 0.0110 | 1.0000 | stat_ops_frame_mean_float_axis_0 | 0.5670 | 0.5670 | 1.0000 | groupby_frame_cython_many_columns | 4.9060 | 4.9054 | 1.0001 | packers_write_csv | 408.2870 | 408.2090 | 1.0002 | read_parse_dates_iso8601 | 1.4647 | 1.4643 | 1.0003 | melt_dataframe | 2.1276 | 2.1270 | 1.0003 | timeseries_sort_index | 7.9180 | 7.9150 | 1.0004 | frame_dropna_axis0_any | 25.9757 | 25.9627 | 1.0005 | frame_fillna_inplace | 9.4250 | 9.4200 | 1.0005 | stat_ops_frame_sum_float_axis_1 | 0.6910 | 0.6906 | 1.0006 | strings_extract | 51.7286 | 51.6953 | 1.0006 | stat_ops_level_series_sum_multiple | 7.1174 | 7.1127 | 1.0007 | replace_fillna | 1.6043 | 1.6030 | 1.0008 | stat_ops_level_series_sum | 2.7270 | 2.7246 | 1.0009 | index_str_boolean_indexer | 13.4881 | 13.4737 | 1.0011 | stat_ops_frame_mean_int_axis_1 | 0.6557 | 0.6549 | 1.0011 | datetimeindex_infer_dst | 3.1234 | 3.1196 | 1.0012 | frame_xs_row | 0.0627 | 0.0626 | 1.0013 | timeseries_asof_nan | 3.2640 | 3.2590 | 1.0015 | stat_ops_level_frame_sum_multiple | 8.0826 | 8.0703 | 1.0015 | groupby_simple_compress_timing | 33.7780 | 33.7264 | 1.0015 | strings_count | 7.8524 | 7.8397 | 1.0016 | read_store_table_mixed | 11.7017 | 11.6820 | 1.0017 | write_store_table_mixed | 37.1350 | 37.0720 | 1.0017 | stat_ops_frame_mean_float_axis_1 | 0.7433 | 0.7420 | 1.0018 | stat_ops_level_frame_sum | 3.6643 | 3.6577 | 1.0018 | sort_level_zero | 4.4034 | 4.3953 | 1.0018 | datetimeindex_converter | 0.8386 | 0.8369 | 1.0020 | timeseries_add_irregular | 12.8970 | 12.8704 | 1.0021 | packers_read_hdf_store | 4.4347 | 4.4253 | 1.0021 | dti_reset_index | 0.2873 | 0.2867 | 1.0022 | groupby_series_simple_cython | 283.9664 | 283.2857 | 1.0024 | timestamp_series_compare | 2.4363 | 2.4304 | 1.0025 | frame_interpolate_some_good_infer | 3.2477 | 3.2397 | 1.0025 | stat_ops_frame_sum_float_axis_0 | 0.5707 | 0.5693 | 1.0025 | datetimeindex_normalize | 2.9077 | 2.9004 | 1.0025 | series_value_counts_strings | 6.7440 | 6.7260 | 1.0027 | replace_replacena | 0.8833 | 0.8810 | 1.0027 | frame_ctor_dtindex_BMonthEnd(2) | 1.5720 | 1.5674 | 1.0029 | frame_isnull | 0.7830 | 0.7807 | 1.0030 | frame_object_equal | 3.9624 | 3.9504 | 1.0030 | series_timestamp_compare | 2.4314 | 2.4240 | 1.0030 | packers_read_json | 48.0903 | 47.9440 | 1.0031 | timeseries_infer_freq | 9.1259 | 9.0960 | 1.0033 | frame_repr_tall | 32.6737 | 32.5663 | 1.0033 | eval_frame_chained_cmp_all_threads | 30.5320 | 30.4317 | 1.0033 | eval_frame_and_all_threads | 12.4954 | 12.4530 | 1.0034 | strings_contains_many | 7.0470 | 7.0230 | 1.0034 | frame_reindex_columns | 0.4124 | 0.4110 | 1.0035 | concat_small_frames | 26.6690 | 26.5753 | 1.0035 | frame_to_csv_mixed | 224.6281 | 223.8233 | 1.0036 | groupby_multi_different_functions | 14.2550 | 14.2020 | 1.0037 | frame_from_series | 0.0819 | 0.0816 | 1.0039 | frame_assign_timeseries_index | 0.6687 | 0.6661 | 1.0039 | strings_contains_few_noregex | 2.9750 | 2.9630 | 1.0041 | frame_ctor_dtindex_BMonthEnd(1) | 1.5744 | 1.5680 | 1.0041 | packers_write_hdf_table | 28.8190 | 28.7014 | 1.0041 | frame_getitem_single_column | 36.0187 | 35.8717 | 1.0041 | series_align_irregular_string | 67.7920 | 67.5030 | 1.0043 | packers_write_pickle | 5.8190 | 5.7937 | 1.0044 | dataframe_resample_min_string | 2.0450 | 2.0360 | 1.0044 | eval_frame_and_python_one_thread | 52.3074 | 52.0726 | 1.0045 | timeseries_to_datetime_iso8601 | 4.5053 | 4.4851 | 1.0045 | concat_empty_frames2 | 0.8070 | 0.8034 | 1.0046 | indexing_dataframe_boolean_st | 9.3643 | 9.3194 | 1.0048 | frame_ctor_dtindex_BMonthBegin(1) | 1.5797 | 1.5720 | 1.0049 | frame_insert_100_columns_begin | 29.0684 | 28.9257 | 1.0049 | write_store_table_dc | 124.7276 | 124.1010 | 1.0050 | append_frame_single_homogenous | 0.9233 | 0.9183 | 1.0055 | reindex_fillna_pad | 0.3570 | 0.3550 | 1.0056 | dataframe_resample_min_numpy | 2.0657 | 2.0541 | 1.0056 | frame_apply_pass_thru | 7.2800 | 7.2390 | 1.0057 | strings_contains_few | 6.8960 | 6.8567 | 1.0057 | frame_to_html_mixed | 352.3560 | 350.3214 | 1.0058 | frame_interpolate | 82.3644 | 81.8823 | 1.0059 | series_getitem_pos_slice | 0.0670 | 0.0666 | 1.0060 | timedelta_convert_int | 0.2290 | 0.2276 | 1.0063 | frame_get_numeric_data | 0.1520 | 0.1510 | 1.0063 | reindex_fillna_backfill | 0.3580 | 0.3556 | 1.0067 | query_store_table_wide | 11.6163 | 11.5387 | 1.0067 | frame_html_repr_trunc_si | 45.1083 | 44.8067 | 1.0067 | frame_ctor_dtindex_QuarterEnd(1) | 1.5794 | 1.5687 | 1.0068 | frame_iloc_big | 0.2473 | 0.2457 | 1.0068 | reindex_fillna_pad_float32 | 0.3050 | 0.3030 | 1.0068 | stat_ops_series_std | 0.1987 | 0.1973 | 1.0068 | frame_mask_floats | 3.6247 | 3.5996 | 1.0070 | read_store_mixed | 4.6786 | 4.6463 | 1.0070 | frame_apply_lambda_mean | 4.1353 | 4.1056 | 1.0072 | panel_from_dict_all_different_indexes | 113.3574 | 112.5370 | 1.0073 | datetimeindex_unique | 0.1316 | 0.1307 | 1.0073 | strings_cat | 0.9414 | 0.9343 | 1.0076 | panel_from_dict_two_different_indexes | 91.2160 | 90.5290 | 1.0076 | frame_ctor_dtindex_BQuarterEnd(1) | 1.5930 | 1.5810 | 1.0076 | frame_to_string_floats | 48.8696 | 48.5003 | 1.0076 | timeseries_slice_minutely | 0.0839 | 0.0833 | 1.0076 | frame_add | 5.2857 | 5.2454 | 1.0077 | strings_center | 5.0300 | 4.9913 | 1.0078 | frame_ctor_dtindex_QuarterEnd(2) | 0.5407 | 0.5364 | 1.0080 | frame_insert_500_columns_end | 139.7773 | 138.6623 | 1.0080 | frame_ctor_dtindex_BusinessDay(1) | 1.4610 | 1.4493 | 1.0081 | frame_ctor_dtindex_BDay(2) | 1.5073 | 1.4950 | 1.0082 | packers_read_pickle | 0.8330 | 0.8260 | 1.0084 | lib_fast_zip_fillna | 17.5400 | 17.3937 | 1.0084 | frame_html_repr_trunc_mi | 58.3727 | 57.8840 | 1.0084 | query_store_table | 5.3097 | 5.2647 | 1.0085 | frame_ctor_dtindex_BQuarterEnd(2) | 0.5403 | 0.5357 | 1.0086 | strings_pad | 5.0271 | 4.9837 | 1.0087 | groupby_indices | 5.9416 | 5.8897 | 1.0088 | append_frame_single_mixed | 1.2573 | 1.2457 | 1.0094 | frame_ctor_dtindex_QuarterBegin(1) | 1.5726 | 1.5580 | 1.0094 | panel_from_dict_equiv_indexes | 68.1947 | 67.5540 | 1.0095 | reindex_daterange_backfill | 0.9154 | 0.9066 | 1.0096 | frame_constructor_ndarray | 0.0656 | 0.0650 | 1.0098 | frame_ctor_dtindex_MonthBegin(1) | 1.5573 | 1.5416 | 1.0102 | join_dataframe_integer_2key | 5.9320 | 5.8723 | 1.0102 | frame_to_csv | 65.8666 | 65.1990 | 1.0102 | frame_ctor_dtindex_MonthEnd(2) | 1.5740 | 1.5580 | 1.0103 | frame_ctor_dtindex_BYearBegin(1) | 0.5494 | 0.5437 | 1.0105 | panel_from_dict_same_index | 67.3974 | 66.6890 | 1.0106 | reindex_fillna_backfill_float32 | 0.3063 | 0.3030 | 1.0108 | reindex_multiindex | 1.6250 | 1.6077 | 1.0108 | frame_ctor_dtindex_Second(1) | 1.1103 | 1.0984 | 1.0109 | frame_repr_wide | 20.8420 | 20.6180 | 1.0109 | frame_ctor_dtindex_Milli(1) | 1.1110 | 1.0990 | 1.0109 | frame_ctor_dtindex_MonthEnd(1) | 1.5700 | 1.5530 | 1.0110 | datetimeindex_add_offset | 0.2201 | 0.2177 | 1.0110 | frame_ctor_dtindex_BDay(1) | 1.4640 | 1.4480 | 1.0111 | packers_read_csv | 40.6194 | 40.1731 | 1.0111 | frame_ctor_dtindex_BQuarterBegin(1) | 1.6020 | 1.5844 | 1.0111 | groupby_transform | 264.4993 | 261.5557 | 1.0113 | frame_ctor_dtindex_Hour(1) | 1.1130 | 1.1006 | 1.0113 | frame_ctor_dtindex_BQuarterBegin(2) | 0.5414 | 0.5353 | 1.0113 | frame_ctor_dtindex_BMonthBegin(2) | 1.5844 | 1.5666 | 1.0113 | frame_fancy_lookup_all | 14.0270 | 13.8700 | 1.0113 | frame_ctor_dtindex_BusinessDay(2) | 1.5070 | 1.4900 | 1.0115 | read_csv_thou_vb | 16.4500 | 16.2627 | 1.0115 | plot_timeseries_period | 67.8209 | 67.0377 | 1.0117 | frame_ctor_dtindex_BYearEnd(2) | 0.5490 | 0.5426 | 1.0117 | frame_ctor_dtindex_Week(2) | 1.3183 | 1.3030 | 1.0118 | index_from_series_ctor | 0.0273 | 0.0269 | 1.0118 | frame_apply_axis_1 | 126.6690 | 125.1896 | 1.0118 | frame_ctor_dtindex_MonthBegin(2) | 1.5557 | 1.5373 | 1.0119 | frame_interpolate_some_good | 1.4380 | 1.4210 | 1.0120 | eval_frame_chained_cmp_python_one_thread | 16.0549 | 15.8641 | 1.0120 | frame_ctor_dtindex_Second(2) | 1.1120 | 1.0987 | 1.0121 | frame_ctor_dtindex_Week(1) | 1.3183 | 1.3020 | 1.0125 | frame_iteritems | 47.0363 | 46.4536 | 1.0125 | frame_ctor_dtindex_BYearEnd(1) | 0.5484 | 0.5413 | 1.0131 | ctor_index_array_string | 0.0243 | 0.0240 | 1.0132 | frame_ctor_dtindex_YearEnd(2) | 0.5500 | 0.5426 | 1.0135 | frame_ctor_dtindex_Nano(1) | 1.5243 | 1.5040 | 1.0135 | frame_ctor_dtindex_Minute(1) | 1.1087 | 1.0939 | 1.0135 | frame_ctor_dtindex_YearBegin(2) | 0.5497 | 0.5423 | 1.0136 | concat_empty_frames1 | 0.8124 | 0.8013 | 1.0138 | series_constructor_ndarray | 0.0233 | 0.0230 | 1.0138 | concat_series_axis1 | 129.0670 | 127.3050 | 1.0138 | read_csv_vb | 15.8934 | 15.6757 | 1.0139 | frame_ctor_dtindex_Micro(1) | 1.1130 | 1.0976 | 1.0140 | frame_ctor_dtindex_YearEnd(1) | 0.5493 | 0.5417 | 1.0141 | series_drop_duplicates_string | 0.5970 | 0.5887 | 1.0142 | frame_ctor_dtindex_Hour(2) | 1.1147 | 1.0990 | 1.0142 | frame_ctor_dtindex_BYearBegin(2) | 0.5476 | 0.5399 | 1.0143 | frame_ctor_dtindex_QuarterBegin(2) | 0.5443 | 0.5364 | 1.0148 | frame_apply_np_mean | 4.2817 | 4.2177 | 1.0152 | indexing_dataframe_boolean_rows_object | 0.6540 | 0.6440 | 1.0154 | groupby_apply_dict_return | 42.8010 | 42.1503 | 1.0154 | packers_write_json | 28.5083 | 28.0707 | 1.0156 | datetime_index_union | 0.0866 | 0.0853 | 1.0158 | strings_lstrip | 4.7090 | 4.6350 | 1.0160 | series_align_int64_index | 32.4043 | 31.8917 | 1.0161 | frame_ctor_dtindex_CustomBusinessDay(2) | 1.6083 | 1.5827 | 1.0162 | frame_ctor_dtindex_Day(1) | 1.1090 | 1.0910 | 1.0165 | frame_ctor_dtindex_YearBegin(1) | 0.5513 | 0.5423 | 1.0166 | frame_apply_user_func | 118.1107 | 116.1826 | 1.0166 | sparse_series_to_frame | 160.1877 | 157.5693 | 1.0166 | series_xs_mi_ix | 0.4490 | 0.4416 | 1.0167 | indexing_panel_subset | 1.1009 | 1.0827 | 1.0169 | frame_ctor_nested_dict_int64 | 102.7170 | 101.0083 | 1.0169 | timeseries_custom_bday_incr_n | 0.0373 | 0.0366 | 1.0174 | frame_xs_mi_ix | 0.4073 | 0.4003 | 1.0175 | read_csv_standard | 9.7227 | 9.5547 | 1.0176 | indexing_dataframe_boolean_no_ne | 43.6884 | 42.9227 | 1.0178 | frame_ctor_dtindex_Day(2) | 1.1170 | 1.0973 | 1.0180 | frame_ctor_dtindex_Micro(2) | 1.1120 | 1.0924 | 1.0180 | frame_ctor_dtindex_CDay(2) | 1.6054 | 1.5770 | 1.0180 | frame_ctor_dtindex_Milli(2) | 1.1160 | 1.0960 | 1.0183 | strings_startswith | 4.9557 | 4.8663 | 1.0184 | frame_ctor_dtindex_CDay(1) | 1.6100 | 1.5806 | 1.0186 | strings_repeat | 5.7130 | 5.6070 | 1.0189 | frame_fancy_lookup | 4.9400 | 4.8476 | 1.0191 | frame_ctor_dtindex_CustomBusinessDay(1) | 1.6170 | 1.5867 | 1.0191 | frame_dropna_axis1_any | 111.9210 | 109.8103 | 1.0192 | frame_get_dtype_counts | 0.1197 | 0.1173 | 1.0203 | timedelta_convert_string_seconds | 234.0536 | 229.3800 | 1.0204 | frame_ctor_dtindex_Minute(2) | 1.1156 | 1.0927 | 1.0210 | unstack_sparse_keyspace | 1.9357 | 1.8950 | 1.0215 | strings_endswith | 4.8117 | 4.7104 | 1.0215 | strings_title | 10.4767 | 10.2540 | 1.0217 | groupby_sum_booleans | 1.2394 | 1.2127 | 1.0220 | frame_dropna_axis0_all | 51.1754 | 50.0263 | 1.0230 | strings_findall | 9.6660 | 9.4477 | 1.0231 | frame_add_st | 5.6027 | 5.4746 | 1.0234 | indexing_dataframe_boolean_rows | 0.4343 | 0.4243 | 1.0236 | frame_xs_col | 0.0413 | 0.0404 | 1.0236 | frame_boolean_row_select | 0.2987 | 0.2910 | 1.0262 | timeseries_custom_bday_incr | 0.0230 | 0.0223 | 1.0285 | frame_apply_ref_by_name | 15.5440 | 15.1064 | 1.0290 | datetime_index_intersection | 0.3810 | 0.3703 | 1.0290 | dataframe_getitem_scalar | 0.0113 | 0.0110 | 1.0290 | timedelta_convert_string | 234.3287 | 227.6974 | 1.0291 | dataframe_resample_max_string | 2.0773 | 2.0180 | 1.0294 | dataframe_resample_max_numpy | 2.0970 | 2.0370 | 1.0295 | frame_ctor_dtindex_Nano(2) | 1.5487 | 1.5037 | 1.0299 | dti_reset_index_tz | 8.9690 | 8.7074 | 1.0300 | frame_shift_axis1 | 20.1313 | 19.4790 | 1.0335 | frame_iteritems_cached | 0.9414 | 0.9096 | 1.0349 | read_store_table | 2.7427 | 2.6460 | 1.0366 | strings_replace | 16.8480 | 16.2187 | 1.0388 | frame_object_unequal | 0.0103 | 0.0099 | 1.0400 | dataframe_resample_mean_string | 2.5107 | 2.4123 | 1.0408 | frame_loc_dups | 0.7844 | 0.7534 | 1.0411 | dataframe_resample_mean_numpy | 2.5330 | 2.4307 | 1.0421 | timeseries_large_lookup_value | 0.0327 | 0.0313 | 1.0431 | packers_write_hdf_store | 10.6483 | 10.1980 | 1.0442 | strings_upper | 6.4100 | 6.1370 | 1.0445 | frame_add_no_ne | 7.0700 | 6.7610 | 1.0457 | frame_mult_st | 7.8347 | 7.4859 | 1.0466 | write_store_table_wide | 91.1407 | 86.7496 | 1.0506 | reshape_stack_simple | 4.9897 | 4.7460 | 1.0513 | strings_lower | 6.9527 | 6.6020 | 1.0531 | sparse_frame_constructor | 11.9627 | 11.2611 | 1.0623 | packers_write_pack | 6.3570 | 5.9756 | 1.0638 | frame_iloc_dups | 0.2973 | 0.2783 | 1.0682 | frame_float_unequal | 0.0106 | 0.0099 | 1.0720 | groupby_multi_python | 143.8957 | 133.9130 | 1.0745 | frame_reindex_axis0 | 126.7590 | 117.4597 | 1.0792 | frame_mult_no_ne | 7.2243 | 6.6910 | 1.0797 | read_csv_comment2 | 20.7973 | 19.2144 | 1.0824 | frame_dtypes | 0.2713 | 0.2507 | 1.0824 | panel_shift | 481.5660 | 441.3423 | 1.0911 | frame_nonunique_unequal | 0.0123 | 0.0113 | 1.0915 | frame_shift_axis0 | 14.5790 | 13.3490 | 1.0921 | series_string_vector_slice | 241.8369 | 221.1520 | 1.0935 | frame_reindex_both_axes_ix | 30.4380 | 27.8010 | 1.0949 | frame_mask_bools | 9.4307 | 8.5904 | 1.0978 | strings_slice | 3.4710 | 3.1454 | 1.1035 | frame_reindex_both_axes | 30.9770 | 27.5687 | 1.1236 | packers_read_pack | 4.8640 | 4.2846 | 1.1352 | join_dataframe_index_single_key_small | 8.2343 | 6.8043 | 1.2102 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- Ratio < 1.0 means the target commit is faster then the baseline. Seed used: 1234 Target [2e7507e] : Use memory views Base [b8132b9] : DOC: add versionadded for hdf.default_format (GH6554) 

reran the bottom

Invoked with : --ncalls: 3 --repeats: 30 ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- join_dataframe_index_single_key_bigger_sort | 16.6733 | 18.0689 | 0.9228 | join_dataframe_index_single_key_bigger | 7.0277 | 7.5340 | 0.9328 | join_dataframe_index_single_key_small | 6.9670 | 7.4514 | 0.9350 | ------------------------------------------------------------------------------- Test name | head[ms] | base[ms] | ratio | ------------------------------------------------------------------------------- Ratio < 1.0 means the target commit is faster then the baseline. Seed used: 1234 Target [2e7507e] : Use memory views Base [b8132b9] : DOC: add versionadded for hdf.default_format (GH6554) 
@jreback
Copy link
Contributor

jreback commented Apr 6, 2014

ok looks fine
pls put a release note in (enhancements)
and ping me when green

@jreback
Copy link
Contributor

jreback commented Apr 22, 2014

@dalejung this was ok...pls put in a release note and rebase...good to 2 go otherwise

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

@dalejung just needed a release note on this

@jreback
Copy link
Contributor

jreback commented Apr 28, 2014

merged via 36357a0 (I added a release note as well)

thanks!

@jreback jreback closed this Apr 28, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Performance Memory or execution speed performance

2 participants