OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
hps
/
faces
/
faces
/
lib
/
python3.10
/
site-packages
/
numpy
/
array_api
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/26/2024 01:27:22 PM
rwxr-xr-x
📄
__init__.py
9.98 KB
10/26/2024 01:27:11 PM
rw-r--r--
📁
__pycache__
-
10/26/2024 01:28:08 PM
rwxr-xr-x
📄
_array_object.py
42.21 KB
10/26/2024 01:27:08 PM
rw-r--r--
📄
_constants.py
66 bytes
10/26/2024 01:27:09 PM
rw-r--r--
📄
_creation_functions.py
9.81 KB
10/26/2024 01:27:09 PM
rw-r--r--
📄
_data_type_functions.py
4.38 KB
10/26/2024 01:27:09 PM
rw-r--r--
📄
_dtypes.py
3.62 KB
10/26/2024 01:27:09 PM
rw-r--r--
📄
_elementwise_functions.py
24.19 KB
10/26/2024 01:27:10 PM
rw-r--r--
📄
_manipulation_functions.py
2.94 KB
10/26/2024 01:27:10 PM
rw-r--r--
📄
_searching_functions.py
1.42 KB
10/26/2024 01:27:10 PM
rw-r--r--
📄
_set_functions.py
2.88 KB
10/26/2024 01:27:10 PM
rw-r--r--
📄
_sorting_functions.py
1.71 KB
10/26/2024 01:27:11 PM
rw-r--r--
📄
_statistical_functions.py
3.3 KB
10/26/2024 01:27:11 PM
rw-r--r--
📄
_typing.py
1.34 KB
10/26/2024 01:27:11 PM
rw-r--r--
📄
_utility_functions.py
824 bytes
10/26/2024 01:27:11 PM
rw-r--r--
📄
linalg.py
17.44 KB
10/26/2024 01:27:07 PM
rw-r--r--
📄
setup.py
341 bytes
10/26/2024 01:27:08 PM
rw-r--r--
📁
tests
-
10/26/2024 01:29:20 PM
rwxr-xr-x
Editing: _set_functions.py
Close
from __future__ import annotations from ._array_object import Array from typing import NamedTuple import numpy as np # Note: np.unique() is split into four functions in the array API: # unique_all, unique_counts, unique_inverse, and unique_values (this is done # to remove polymorphic return types). # Note: The various unique() functions are supposed to return multiple NaNs. # This does not match the NumPy behavior, however, this is currently left as a # TODO in this implementation as this behavior may be reverted in np.unique(). # See https://github.com/numpy/numpy/issues/20326. # Note: The functions here return a namedtuple (np.unique() returns a normal # tuple). class UniqueAllResult(NamedTuple): values: Array indices: Array inverse_indices: Array counts: Array class UniqueCountsResult(NamedTuple): values: Array counts: Array class UniqueInverseResult(NamedTuple): values: Array inverse_indices: Array def unique_all(x: Array, /) -> UniqueAllResult: """ Array API compatible wrapper for :py:func:`np.unique <numpy.unique>`. See its docstring for more information. """ values, indices, inverse_indices, counts = np.unique( x._array, return_counts=True, return_index=True, return_inverse=True, equal_nan=False, ) # np.unique() flattens inverse indices, but they need to share x's shape # See https://github.com/numpy/numpy/issues/20638 inverse_indices = inverse_indices.reshape(x.shape) return UniqueAllResult( Array._new(values), Array._new(indices), Array._new(inverse_indices), Array._new(counts), ) def unique_counts(x: Array, /) -> UniqueCountsResult: res = np.unique( x._array, return_counts=True, return_index=False, return_inverse=False, equal_nan=False, ) return UniqueCountsResult(*[Array._new(i) for i in res]) def unique_inverse(x: Array, /) -> UniqueInverseResult: """ Array API compatible wrapper for :py:func:`np.unique <numpy.unique>`. See its docstring for more information. """ values, inverse_indices = np.unique( x._array, return_counts=False, return_index=False, return_inverse=True, equal_nan=False, ) # np.unique() flattens inverse indices, but they need to share x's shape # See https://github.com/numpy/numpy/issues/20638 inverse_indices = inverse_indices.reshape(x.shape) return UniqueInverseResult(Array._new(values), Array._new(inverse_indices)) def unique_values(x: Array, /) -> Array: """ Array API compatible wrapper for :py:func:`np.unique <numpy.unique>`. See its docstring for more information. """ res = np.unique( x._array, return_counts=False, return_index=False, return_inverse=False, equal_nan=False, ) return Array._new(res)