The ArrayKit library provides utilities for creating and transforming NumPy arrays, implementing performance-critical StaticFrame operations as Python C extensions.
Code: https://github.com/InvestmentSystems/arraykit
Packages: https://pypi.org/project/arraykit
ArrayKit requires the following:
- Python>=3.9
- numpy>=1.19.5
Added TriMap utility class for join optimization.
Restored functional wheels for Mac OS x86_64.
Now building wheels for 3.12.
Now building functional wheels for Mac OS arm64 / Apple Silicon.
Updated types in pyi file.
Updated types in pyi file.
Minimum supported Python set to 3.8.
Minimum supported NumPy set to 1.19.5.
Improved performance of first_true_1d() and first_true_2d().
Restored behavior of Blockndex.rows to return -1 when BlockIndex has zero rows.
Added BlockIndex.iter_block().
Corrected issue in BlockIndex.shape when the BlockIndex has zero rows.
Corrected handling of empty selections in BlockIndex.iter_contiguous().
Corrected handling of ascending in BlockIndex.iter_contiguous() with Boolean arrays.
Corrected deallocation routines in BlockIndex.iter_contiguous().
Added BlockIndex.iter_contiguous() with options for ascending and reduce sequences.
Added slice_to_ascending_slice().
Updated BlockIndex.shape to internally cache the shape tuple.
Corrected BlockIndex.iter_select() handling of negative integers in sequences.
Updated BlockIndex.register() to handle 0-column 2D arrays and return False.
Added BlockIndex.rows, BlockIndex.columns properties.
Updated unset BlockIndex.dtype to return a float dtype.
Added BlockIndex, a tool to be used by TypeBlocks for mapping realized column positions to arrays.
Corrected potential issue in AK_CPL_resize_buffer that could segfault for very large offsets.
Simplified implementation of NaTType identification in isna_element().
Corrected potential memory leak in isna_element().
Optimization to delimited_to_arrays() character reading per line.
Improvements to delimited_to_arrays(), including proper loading of float16 types.
Extended deepcopy_array() to permit memo as None.
Corrected all compiler warnings on Windows.
Added first_true_1d(), first_true_2d(). Added tools for performance graphing.
Corrected segmentation fault resulting from attempting to parse invalid datetime64 strings in AK_CPL_to_array_via_cast.
Added include_none argument to isna_element(); implemented identification of Pandas pd.Timestamp NaT.
Updated most-recent NumPy references to 1.23.5.
Maintenance release.
Optimization to numerical array creation in delimited_to_arrays().
Set NumPy minimum version at 1.18.5.
Extended arguments to and functionality in split_after_count() to support the complete CSV dialect interface.
Now building wheels for 3.11.
Refinements to ensure typed-parsed ints are always int64 in delimited_to_arrays().
Implemented count_iteration, split_after_count.
Implemented delimited_to_arrays, iterable_str_to_array_1d.
Now building Python 3.10 wheels.
Added get_new_indexers_and_screen.
Updated minimum NumPy to 1.18.5
Improvements to performance of array_deepcopy.
Added dtype_from_element.
Revised cross compile releases.
Added dtype_from_element().
Explicit imports in __init__.py for better static analysis.
Added isna_element().
Redesigned package structure for inclusion of py.typed and __init__.pyi.
array_deepcopy now accepts kwargs and makes the memo dict optional.
Maintenance release of the following interfaces:
immutable_filter
mloc
shape_filter
column_2d_filter
column_1d_filter
row_1d_filter
array_deepcopy
resolve_dtype
resolve_dtype_iter