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.10
- numpy>=1.24.3
Updated build configuration.
Updated build configuration.
Updated build configuration.
Updated build configuration.
Updated build configuration.
Updated build configuration.
Updated build configuration.
Integrated AutoMap and FrozenAutoMap from arraymap.
Removed global integer cache from AutoMap and FrozenAutoMap for thread safety.
Now building wheels for Python 3.13.
Added TriMap.map_merge()
.
Corrected incorrect component of _TLabel
in __init__.pyi
.
Updated build configuration.
Updated build configuration.
Now building with NumPy 2.0.
Improved array_to_tuple_array()
and array_to_tuple_iter()
to preserve tuple
in 1D arrays.
Extended array_to_tuple_array()
and array_to_tuple_iter()
to support 1D arrays.
Added array_to_tuple_array()
.
Added array_to_tuple_iter()
.
Optimized memory allocation strategy for nonzero_1d()
.
Extended nonzero_1d()
to support non-contiguous arrays.
Optimizations to TriMap
when mapping to object and flexible dtypes.
Enhancements and optimizations to TriMap
.
Added nonzero_1d()
.
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