PRF: Optimize 2d take operations.
State: closed

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:

``` python
# 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.


Labels:
name: Performance
description: Memory or execution speed performance

Comments:
```
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
```

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).

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 :/

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

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

yes

FYI pandas already requires cython 0.17.1 or higher.

can you post another vbench run after your latest changes

@dalejung ?

```

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)
```

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

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

@dalejung just needed a release note on this

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

thanks!