@@ -18,6 +18,7 @@ def next(x):
18
18
from numpy .lib .format import read_array , write_array
19
19
import numpy as np
20
20
21
+ import pandas ._algos as _algos
21
22
import pandas ._tseries as lib
22
23
from pandas .util import py3compat
23
24
import codecs
@@ -111,17 +112,17 @@ def _unpickle_array(bytes):
111
112
def _take_1d_datetime (arr , indexer , out , fill_value = np .nan ):
112
113
view = arr .view (np .int64 )
113
114
outview = out .view (np .int64 )
114
- lib .take_1d_bool (view , indexer , outview , fill_value = fill_value )
115
+ _algos .take_1d_bool (view , indexer , outview , fill_value = fill_value )
115
116
116
117
def _take_2d_axis0_datetime (arr , indexer , out , fill_value = np .nan ):
117
118
view = arr .view (np .int64 )
118
119
outview = out .view (np .int64 )
119
- lib .take_1d_bool (view , indexer , outview , fill_value = fill_value )
120
+ _algos .take_1d_bool (view , indexer , outview , fill_value = fill_value )
120
121
121
122
def _take_2d_axis1_datetime (arr , indexer , out , fill_value = np .nan ):
122
123
view = arr .view (np .uint8 )
123
124
outview = out .view (np .uint8 )
124
- lib .take_1d_bool (view , indexer , outview , fill_value = fill_value )
125
+ _algos .take_1d_bool (view , indexer , outview , fill_value = fill_value )
125
126
126
127
def _view_wrapper (f , wrap_dtype , na_override = None ):
127
128
def wrapper (arr , indexer , out , fill_value = np .nan ):
@@ -134,42 +135,42 @@ def wrapper(arr, indexer, out, fill_value=np.nan):
134
135
135
136
136
137
_take1d_dict = {
137
- 'float64' : lib .take_1d_float64 ,
138
- 'int32' : lib .take_1d_int32 ,
139
- 'int64' : lib .take_1d_int64 ,
140
- 'object' : lib .take_1d_object ,
141
- 'bool' : _view_wrapper (lib .take_1d_bool , np .uint8 ),
142
- 'datetime64[us]' : _view_wrapper (lib .take_1d_int64 , np .int64 ,
138
+ 'float64' : _algos .take_1d_float64 ,
139
+ 'int32' : _algos .take_1d_int32 ,
140
+ 'int64' : _algos .take_1d_int64 ,
141
+ 'object' : _algos .take_1d_object ,
142
+ 'bool' : _view_wrapper (_algos .take_1d_bool , np .uint8 ),
143
+ 'datetime64[us]' : _view_wrapper (_algos .take_1d_int64 , np .int64 ,
143
144
na_override = lib .NaT ),
144
145
}
145
146
146
147
_take2d_axis0_dict = {
147
- 'float64' : lib .take_2d_axis0_float64 ,
148
- 'int32' : lib .take_2d_axis0_int32 ,
149
- 'int64' : lib .take_2d_axis0_int64 ,
150
- 'object' : lib .take_2d_axis0_object ,
151
- 'bool' : _view_wrapper (lib .take_2d_axis0_bool , np .uint8 ),
152
- 'datetime64[us]' : _view_wrapper (lib .take_2d_axis0_int64 , np .int64 ,
148
+ 'float64' : _algos .take_2d_axis0_float64 ,
149
+ 'int32' : _algos .take_2d_axis0_int32 ,
150
+ 'int64' : _algos .take_2d_axis0_int64 ,
151
+ 'object' : _algos .take_2d_axis0_object ,
152
+ 'bool' : _view_wrapper (_algos .take_2d_axis0_bool , np .uint8 ),
153
+ 'datetime64[us]' : _view_wrapper (_algos .take_2d_axis0_int64 , np .int64 ,
153
154
na_override = lib .NaT ),
154
155
}
155
156
156
157
_take2d_axis1_dict = {
157
- 'float64' : lib .take_2d_axis1_float64 ,
158
- 'int32' : lib .take_2d_axis1_int32 ,
159
- 'int64' : lib .take_2d_axis1_int64 ,
160
- 'object' : lib .take_2d_axis1_object ,
161
- 'bool' : _view_wrapper (lib .take_2d_axis1_bool , np .uint8 ),
162
- 'datetime64[us]' : _view_wrapper (lib .take_2d_axis1_int64 , np .int64 ,
158
+ 'float64' : _algos .take_2d_axis1_float64 ,
159
+ 'int32' : _algos .take_2d_axis1_int32 ,
160
+ 'int64' : _algos .take_2d_axis1_int64 ,
161
+ 'object' : _algos .take_2d_axis1_object ,
162
+ 'bool' : _view_wrapper (_algos .take_2d_axis1_bool , np .uint8 ),
163
+ 'datetime64[us]' : _view_wrapper (_algos .take_2d_axis1_int64 , np .int64 ,
163
164
na_override = lib .NaT ),
164
165
}
165
166
166
167
_take2d_multi_dict = {
167
- 'float64' : lib .take_2d_multi_float64 ,
168
- 'int32' : lib .take_2d_multi_int32 ,
169
- 'int64' : lib .take_2d_multi_int64 ,
170
- 'object' : lib .take_2d_multi_object ,
171
- 'bool' : _view_wrapper (lib .take_2d_multi_bool , np .uint8 ),
172
- 'datetime64[us]' : _view_wrapper (lib .take_2d_multi_int64 , np .int64 ,
168
+ 'float64' : _algos .take_2d_multi_float64 ,
169
+ 'int32' : _algos .take_2d_multi_int32 ,
170
+ 'int64' : _algos .take_2d_multi_int64 ,
171
+ 'object' : _algos .take_2d_multi_object ,
172
+ 'bool' : _view_wrapper (_algos .take_2d_multi_bool , np .uint8 ),
173
+ 'datetime64[us]' : _view_wrapper (_algos .take_2d_multi_int64 , np .int64 ,
173
174
na_override = lib .NaT ),
174
175
}
175
176
@@ -366,54 +367,54 @@ def wrapper(arr, mask, limit=None):
366
367
f (view , mask , limit = limit )
367
368
return wrapper
368
369
369
- _pad_1d_datetime = _interp_wrapper (lib .pad_inplace_int64 , np .int64 )
370
- _pad_2d_datetime = _interp_wrapper (lib .pad_2d_inplace_int64 , np .int64 )
371
- _backfill_1d_datetime = _interp_wrapper (lib .backfill_inplace_int64 , np .int64 )
372
- _backfill_2d_datetime = _interp_wrapper (lib .backfill_2d_inplace_int64 , np .int64 )
370
+ _pad_1d_datetime = _interp_wrapper (_algos .pad_inplace_int64 , np .int64 )
371
+ _pad_2d_datetime = _interp_wrapper (_algos .pad_2d_inplace_int64 , np .int64 )
372
+ _backfill_1d_datetime = _interp_wrapper (_algos .backfill_inplace_int64 , np .int64 )
373
+ _backfill_2d_datetime = _interp_wrapper (_algos .backfill_2d_inplace_int64 , np .int64 )
373
374
374
375
def pad_1d (values , limit = None ):
375
376
if is_float_dtype (values ):
376
- _method = lib .pad_inplace_float64
377
+ _method = _algos .pad_inplace_float64
377
378
elif is_datetime64_dtype (values ):
378
379
_method = _pad_1d_datetime
379
380
elif values .dtype == np .object_ :
380
- _method = lib .pad_inplace_object
381
+ _method = _algos .pad_inplace_object
381
382
else : # pragma: no cover
382
383
raise ValueError ('Invalid dtype for padding' )
383
384
384
385
_method (values , isnull (values ).view (np .uint8 ), limit = limit )
385
386
386
387
def backfill_1d (values , limit = None ):
387
388
if is_float_dtype (values ):
388
- _method = lib .backfill_inplace_float64
389
+ _method = _algos .backfill_inplace_float64
389
390
elif is_datetime64_dtype (values ):
390
391
_method = _backfill_1d_datetime
391
392
elif values .dtype == np .object_ :
392
- _method = lib .backfill_inplace_object
393
+ _method = _algos .backfill_inplace_object
393
394
else : # pragma: no cover
394
395
raise ValueError ('Invalid dtype for padding' )
395
396
396
397
_method (values , isnull (values ).view (np .uint8 ), limit = limit )
397
398
398
399
def pad_2d (values , limit = None ):
399
400
if is_float_dtype (values ):
400
- _method = lib .pad_2d_inplace_float64
401
+ _method = _algos .pad_2d_inplace_float64
401
402
elif is_datetime64_dtype (values ):
402
403
_method = _pad_2d_datetime
403
404
elif values .dtype == np .object_ :
404
- _method = lib .pad_2d_inplace_object
405
+ _method = _algos .pad_2d_inplace_object
405
406
else : # pragma: no cover
406
407
raise ValueError ('Invalid dtype for padding' )
407
408
408
409
_method (values , isnull (values ).view (np .uint8 ), limit = limit )
409
410
410
411
def backfill_2d (values , limit = None ):
411
412
if is_float_dtype (values ):
412
- _method = lib .backfill_2d_inplace_float64
413
+ _method = _algos .backfill_2d_inplace_float64
413
414
elif is_datetime64_dtype (values ):
414
415
_method = _backfill_2d_datetime
415
416
elif values .dtype == np .object_ :
416
- _method = lib .backfill_2d_inplace_object
417
+ _method = _algos .backfill_2d_inplace_object
417
418
else : # pragma: no cover
418
419
raise ValueError ('Invalid dtype for padding' )
419
420
0 commit comments