Skip to content

Commit 0c18cc6

Browse files
REF: remove take_1d alias of take_nd (#39731)
1 parent 2332161 commit 0c18cc6

File tree

15 files changed

+39
-42
lines changed

15 files changed

+39
-42
lines changed

pandas/_testing/asserters.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
Series,
3030
TimedeltaIndex,
3131
)
32-
from pandas.core.algorithms import safe_sort, take_1d
32+
from pandas.core.algorithms import safe_sort, take_nd
3333
from pandas.core.arrays import (
3434
DatetimeArray,
3535
ExtensionArray,
@@ -309,7 +309,7 @@ def _get_ilevel_values(index, level):
309309
# accept level number only
310310
unique = index.levels[level]
311311
level_codes = index.codes[level]
312-
filled = take_1d(unique._values, level_codes, fill_value=unique._na_value)
312+
filled = take_nd(unique._values, level_codes, fill_value=unique._na_value)
313313
return unique._shallow_copy(filled, name=index.names[level])
314314

315315
if check_less_precise is not no_default:

pandas/core/algorithms.py

+3-6
Original file line numberDiff line numberDiff line change
@@ -1652,7 +1652,7 @@ def take(arr, indices, axis: int = 0, allow_fill: bool = False, fill_value=None)
16521652
if allow_fill:
16531653
# Pandas style, -1 means NA
16541654
validate_indices(indices, arr.shape[axis])
1655-
result = take_1d(
1655+
result = take_nd(
16561656
arr, indices, axis=axis, allow_fill=True, fill_value=fill_value
16571657
)
16581658
else:
@@ -1783,9 +1783,6 @@ def take_nd(
17831783
return out
17841784

17851785

1786-
take_1d = take_nd
1787-
1788-
17891786
def take_2d_multi(arr, indexer, fill_value=np.nan):
17901787
"""
17911788
Specialized Cython take which sets NaN values in one pass.
@@ -2169,9 +2166,9 @@ def safe_sort(
21692166
sorter = ensure_platform_int(t.lookup(ordered))
21702167

21712168
if na_sentinel == -1:
2172-
# take_1d is faster, but only works for na_sentinels of -1
2169+
# take_nd is faster, but only works for na_sentinels of -1
21732170
order2 = sorter.argsort()
2174-
new_codes = take_1d(order2, codes, fill_value=-1)
2171+
new_codes = take_nd(order2, codes, fill_value=-1)
21752172
if verify:
21762173
mask = (codes < -len(values)) | (codes >= len(values))
21772174
else:

pandas/core/arrays/categorical.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
from pandas.core import ops
6060
from pandas.core.accessor import PandasDelegate, delegate_names
6161
import pandas.core.algorithms as algorithms
62-
from pandas.core.algorithms import factorize, get_data_algo, take_1d, unique1d
62+
from pandas.core.algorithms import factorize, get_data_algo, take_nd, unique1d
6363
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
6464
from pandas.core.base import ExtensionArray, NoNewAttributesMixin, PandasObject
6565
import pandas.core.common as com
@@ -475,7 +475,7 @@ def astype(self, dtype: Dtype, copy: bool = True) -> ArrayLike:
475475
msg = f"Cannot cast {self.categories.dtype} dtype to {dtype}"
476476
raise ValueError(msg)
477477

478-
result = take_1d(new_cats, libalgos.ensure_platform_int(self._codes))
478+
result = take_nd(new_cats, libalgos.ensure_platform_int(self._codes))
479479

480480
return result
481481

@@ -1310,7 +1310,7 @@ def __array__(self, dtype: Optional[NpDtype] = None) -> np.ndarray:
13101310
if dtype==None (default), the same dtype as
13111311
categorical.categories.dtype.
13121312
"""
1313-
ret = take_1d(self.categories._values, self._codes)
1313+
ret = take_nd(self.categories._values, self._codes)
13141314
if dtype and not is_dtype_equal(dtype, self.categories.dtype):
13151315
return np.asarray(ret, dtype)
13161316
# When we're a Categorical[ExtensionArray], like Interval,
@@ -2349,7 +2349,7 @@ def _str_map(self, f, na_value=np.nan, dtype=np.dtype(object)):
23492349
categories = self.categories
23502350
codes = self.codes
23512351
result = PandasArray(categories.to_numpy())._str_map(f, na_value, dtype)
2352-
return take_1d(result, codes, fill_value=na_value)
2352+
return take_nd(result, codes, fill_value=na_value)
23532353

23542354
def _str_get_dummies(self, sep="|"):
23552355
# sep may not be in categories. Just bail on this.
@@ -2600,7 +2600,7 @@ def recode_for_categories(
26002600
indexer = coerce_indexer_dtype(
26012601
new_categories.get_indexer(old_categories), new_categories
26022602
)
2603-
new_codes = take_1d(indexer, codes, fill_value=-1)
2603+
new_codes = take_nd(indexer, codes, fill_value=-1)
26042604
return new_codes
26052605

26062606

pandas/core/base.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -926,7 +926,7 @@ def _map_values(self, mapper, na_action=None):
926926
values = self._values
927927

928928
indexer = mapper.index.get_indexer(values)
929-
new_values = algorithms.take_1d(mapper._values, indexer)
929+
new_values = algorithms.take_nd(mapper._values, indexer)
930930

931931
return new_values
932932

pandas/core/dtypes/concat.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,9 @@ def _maybe_unwrap(x):
272272
categories = categories.sort_values()
273273
indexer = categories.get_indexer(first.categories)
274274

275-
from pandas.core.algorithms import take_1d
275+
from pandas.core.algorithms import take_nd
276276

277-
new_codes = take_1d(indexer, new_codes, fill_value=-1)
277+
new_codes = take_nd(indexer, new_codes, fill_value=-1)
278278
elif ignore_order or all(not c.ordered for c in to_union):
279279
# different categories - union and recode
280280
cats = first.categories.append([c.categories for c in to_union[1:]])

pandas/core/groupby/generic.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ def _transform_fast(self, result) -> Series:
565565
"""
566566
ids, _, ngroup = self.grouper.group_info
567567
result = result.reindex(self.grouper.result_index, copy=False)
568-
out = algorithms.take_1d(result._values, ids)
568+
out = algorithms.take_nd(result._values, ids)
569569
return self.obj._constructor(out, index=self.obj.index, name=self.obj.name)
570570

571571
def filter(self, func, dropna=True, *args, **kwargs):
@@ -1413,7 +1413,7 @@ def _transform_fast(self, result: DataFrame) -> DataFrame:
14131413
ids, _, ngroup = self.grouper.group_info
14141414
result = result.reindex(self.grouper.result_index, copy=False)
14151415
output = [
1416-
algorithms.take_1d(result.iloc[:, i].values, ids)
1416+
algorithms.take_nd(result.iloc[:, i].values, ids)
14171417
for i, _ in enumerate(result.columns)
14181418
]
14191419

pandas/core/indexes/interval.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
)
4343
from pandas.core.dtypes.dtypes import IntervalDtype
4444

45-
from pandas.core.algorithms import take_1d, unique
45+
from pandas.core.algorithms import take_nd, unique
4646
from pandas.core.arrays.interval import IntervalArray, _interval_shared_docs
4747
import pandas.core.common as com
4848
from pandas.core.indexers import is_valid_positional_slice
@@ -671,9 +671,9 @@ def _get_indexer(
671671
indexer = np.where(left_indexer == right_indexer, left_indexer, -1)
672672
elif is_categorical_dtype(target.dtype):
673673
target = cast("CategoricalIndex", target)
674-
# get an indexer for unique categories then propagate to codes via take_1d
674+
# get an indexer for unique categories then propagate to codes via take_nd
675675
categories_indexer = self.get_indexer(target.categories)
676-
indexer = take_1d(categories_indexer, target.codes, fill_value=-1)
676+
indexer = take_nd(categories_indexer, target.codes, fill_value=-1)
677677
elif not is_object_dtype(target):
678678
# homogeneous scalar index: use IntervalTree
679679
target = self._maybe_convert_i8(target)

pandas/core/indexes/multi.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1349,7 +1349,7 @@ def format(
13491349
# weird all NA case
13501350
formatted = [
13511351
pprint_thing(na if isna(x) else x, escape_chars=("\t", "\r", "\n"))
1352-
for x in algos.take_1d(lev._values, level_codes)
1352+
for x in algos.take_nd(lev._values, level_codes)
13531353
]
13541354
stringified_levels.append(formatted)
13551355

@@ -1638,7 +1638,7 @@ def _get_level_values(self, level: int, unique: bool = False) -> Index:
16381638
name = self._names[level]
16391639
if unique:
16401640
level_codes = algos.unique(level_codes)
1641-
filled = algos.take_1d(lev._values, level_codes, fill_value=lev._na_value)
1641+
filled = algos.take_nd(lev._values, level_codes, fill_value=lev._na_value)
16421642
return lev._shallow_copy(filled, name=name)
16431643

16441644
def get_level_values(self, level):
@@ -1922,7 +1922,7 @@ def _sort_levels_monotonic(self) -> MultiIndex:
19221922
# indexer to reorder the level codes
19231923
indexer = ensure_int64(indexer)
19241924
ri = lib.get_reverse_indexer(indexer, len(indexer))
1925-
level_codes = algos.take_1d(ri, level_codes)
1925+
level_codes = algos.take_nd(ri, level_codes)
19261926

19271927
new_levels.append(lev)
19281928
new_codes.append(level_codes)

pandas/core/internals/concat.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ def _get_mgr_concatenation_plan(mgr: BlockManager, indexers: Dict[int, np.ndarra
138138

139139
if 0 in indexers:
140140
ax0_indexer = indexers.pop(0)
141-
blknos = algos.take_1d(mgr.blknos, ax0_indexer, fill_value=-1)
142-
blklocs = algos.take_1d(mgr.blklocs, ax0_indexer, fill_value=-1)
141+
blknos = algos.take_nd(mgr.blknos, ax0_indexer, fill_value=-1)
142+
blklocs = algos.take_nd(mgr.blklocs, ax0_indexer, fill_value=-1)
143143
else:
144144

145145
if mgr.is_single_block:

pandas/core/internals/construction.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,7 @@ def _list_of_series_to_arrays(
645645
indexer = indexer_cache[id(index)] = index.get_indexer(columns)
646646

647647
values = extract_array(s, extract_numpy=True)
648-
aligned_values.append(algorithms.take_1d(values, indexer))
648+
aligned_values.append(algorithms.take_nd(values, indexer))
649649

650650
content = np.vstack(aligned_values)
651651

pandas/core/internals/managers.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ def items(self) -> Index:
255255

256256
def get_dtypes(self):
257257
dtypes = np.array([blk.dtype for blk in self.blocks])
258-
return algos.take_1d(dtypes, self.blknos, allow_fill=False)
258+
return algos.take_nd(dtypes, self.blknos, allow_fill=False)
259259

260260
def __getstate__(self):
261261
block_values = [b.values for b in self.blocks]
@@ -1308,10 +1308,10 @@ def _slice_take_blocks_ax0(
13081308
blknos = self.blknos[slobj]
13091309
blklocs = self.blklocs[slobj]
13101310
else:
1311-
blknos = algos.take_1d(
1311+
blknos = algos.take_nd(
13121312
self.blknos, slobj, fill_value=-1, allow_fill=allow_fill
13131313
)
1314-
blklocs = algos.take_1d(
1314+
blklocs = algos.take_nd(
13151315
self.blklocs, slobj, fill_value=-1, allow_fill=allow_fill
13161316
)
13171317

pandas/core/resample.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1713,7 +1713,7 @@ def _get_period_bins(self, ax: PeriodIndex):
17131713
def _take_new_index(obj, indexer, new_index, axis=0):
17141714

17151715
if isinstance(obj, ABCSeries):
1716-
new_values = algos.take_1d(obj._values, indexer)
1716+
new_values = algos.take_nd(obj._values, indexer)
17171717
return obj._constructor(new_values, index=new_index, name=obj.name)
17181718
elif isinstance(obj, ABCDataFrame):
17191719
if axis == 1:

pandas/core/reshape/merge.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -852,13 +852,13 @@ def _maybe_add_join_keys(self, result, left_indexer, right_indexer):
852852
lvals = result[name]._values
853853
else:
854854
lfill = na_value_for_dtype(take_left.dtype)
855-
lvals = algos.take_1d(take_left, left_indexer, fill_value=lfill)
855+
lvals = algos.take_nd(take_left, left_indexer, fill_value=lfill)
856856

857857
if take_right is None:
858858
rvals = result[name]._values
859859
else:
860860
rfill = na_value_for_dtype(take_right.dtype)
861-
rvals = algos.take_1d(take_right, right_indexer, fill_value=rfill)
861+
rvals = algos.take_nd(take_right, right_indexer, fill_value=rfill)
862862

863863
# if we have an all missing left_indexer
864864
# make sure to just use the right values or vice-versa

pandas/core/series.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4155,7 +4155,7 @@ def _reindex_indexer(self, new_index, indexer, copy):
41554155
return self.copy()
41564156
return self
41574157

4158-
new_values = algorithms.take_1d(
4158+
new_values = algorithms.take_nd(
41594159
self._values, indexer, allow_fill=True, fill_value=None
41604160
)
41614161
return self._constructor(new_values, index=new_index)

pandas/tests/test_take.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def test_1d_with_out(self, dtype_can_hold_na, writeable):
8080

8181
indexer = [2, 1, 0, 1]
8282
out = np.empty(4, dtype=dtype)
83-
algos.take_1d(data, indexer, out=out)
83+
algos.take_nd(data, indexer, out=out)
8484

8585
expected = data.take(indexer)
8686
tm.assert_almost_equal(out, expected)
@@ -89,13 +89,13 @@ def test_1d_with_out(self, dtype_can_hold_na, writeable):
8989
out = np.empty(4, dtype=dtype)
9090

9191
if can_hold_na:
92-
algos.take_1d(data, indexer, out=out)
92+
algos.take_nd(data, indexer, out=out)
9393
expected = data.take(indexer)
9494
expected[3] = np.nan
9595
tm.assert_almost_equal(out, expected)
9696
else:
9797
with pytest.raises(TypeError, match=self.fill_error):
98-
algos.take_1d(data, indexer, out=out)
98+
algos.take_nd(data, indexer, out=out)
9999

100100
# No Exception otherwise.
101101
data.take(indexer, out=out)
@@ -105,14 +105,14 @@ def test_1d_fill_nonna(self, dtype_fill_out_dtype):
105105
data = np.random.randint(0, 2, 4).astype(dtype)
106106
indexer = [2, 1, 0, -1]
107107

108-
result = algos.take_1d(data, indexer, fill_value=fill_value)
108+
result = algos.take_nd(data, indexer, fill_value=fill_value)
109109
assert (result[[0, 1, 2]] == data[[2, 1, 0]]).all()
110110
assert result[3] == fill_value
111111
assert result.dtype == out_dtype
112112

113113
indexer = [2, 1, 0, 1]
114114

115-
result = algos.take_1d(data, indexer, fill_value=fill_value)
115+
result = algos.take_nd(data, indexer, fill_value=fill_value)
116116
assert (result[[0, 1, 2, 3]] == data[indexer]).all()
117117
assert result.dtype == dtype
118118

@@ -269,7 +269,7 @@ def test_1d_other_dtypes(self):
269269
arr = np.random.randn(10).astype(np.float32)
270270

271271
indexer = [1, 2, 3, -1]
272-
result = algos.take_1d(arr, indexer)
272+
result = algos.take_nd(arr, indexer)
273273
expected = arr.take(indexer)
274274
expected[-1] = np.nan
275275
tm.assert_almost_equal(result, expected)
@@ -294,11 +294,11 @@ def test_2d_other_dtypes(self):
294294
def test_1d_bool(self):
295295
arr = np.array([0, 1, 0], dtype=bool)
296296

297-
result = algos.take_1d(arr, [0, 2, 2, 1])
297+
result = algos.take_nd(arr, [0, 2, 2, 1])
298298
expected = arr.take([0, 2, 2, 1])
299299
tm.assert_numpy_array_equal(result, expected)
300300

301-
result = algos.take_1d(arr, [0, 2, -1])
301+
result = algos.take_nd(arr, [0, 2, -1])
302302
assert result.dtype == np.object_
303303

304304
def test_2d_bool(self):

0 commit comments

Comments
 (0)