ndarray-rand
Constructors for randomized arrays. `rand` integration for `ndarray`.
0.16.0
4.7M downloads/mo
#4644 most downloaded on crates.io
rust-ndarray/ndarray
What this package is like to depend on
Last release 9 months ago
04 Nov 2025
Ships unpredictably
gaps range from 2 weeks to 3.4 years
Some releases are documented
notes for 6 of 19 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
19 releases · first in 2016
1 release in the last 12 months
see the full history below
Release timeline
19 releases · Mar 2016 to Nov 2025Releases
latest 19-
0.16.004 Nov 2025Release notes
Open source →This release of
ndarray-randadds compatibility for the newArrayReftype inndarray0.17. It adds the the newRandomRefExttrait, providingsample_axisandsample_axis_usingmethods onArrayRef.This release also bumps the requirements for
randto 0.9.0 and forrand_distrto 0.5.0.Release notes
Open source →Version 0.16.0 (2024-08-03)
Featured Changes
- Better shape: Deprecate reshape, into_shape by @bluss #1310
.into_shape()is now deprecated.
Use.into_shape_with_order()or.to_shape()instead, which don't haveinto_shape's drawbacks.
New Features and Improvements
- Check for aliasing in
RawViewMut::from_shape_ptrwith a debug assertion by @bluss #1413 - Allow aliasing in ArrayView::from_shape by @bluss #1410
- Remove deprecations from 0.15.x by @bluss #1409
- Make
CowArrayan owned storage array, require Clone bound forinto_sharedby @jturner314 #1028 - Change
NdProducer::Dimofaxis_windows()toIx1by @jonasBoss #1305 - Add
squeeze()to dynamic dimension arrays by @barakugav #1396 - Add
flatten,flatten_with_orderandinto_flatto arrays by @barakugav #1397 - Make compatible with thumbv6m-none-eabi by @BjornTheProgrammer #1384
is_uniqueforArcArrayby @daniellga #1399- Add
triuandtrilmethods directly to ArrayBase by @akern40 #1386 - Fix styling of the BLAS integration heading. by @adamreichold #1390
- Implement
product_axisby @akern40 #1387 - Add reserve method for owned arrays by @ssande7 #1268
- Use inline on spit_at and smaller methods by @bluss #1381
- Update to Approx 0.5 by @bluss #1380
- Add .into_raw_vec_with_offset() and deprecate .into_raw_vec() by @bluss #1379
- Add additional array -> array view conversions by @bluss #1130
- implement DoubleEndedIterator for 1d
LanesIterby @Muthsera #1237 - Add Zip::any by @nilgoyette #1228
- Make the aview0, aview1, and aview2 free functions be const fns by @jturner314 #1132
- Add missing safety checks to
From<&[[A; N]]> for ArrayViewandFrom<&mut [[A; N]]> for ArrayViewMutby @jturner314 #1131 - derived Debug for Iter and IterMut by @biskwikman #1353
- Fix Miri errors for WindowsIter and ExactChunksIter/Mut by @jturner314 #1142
- Fix Miri failure with -Zmiri-tag-raw-pointers by @jturner314 #1138
- Track-caller panics by @xd009642 #975
- Add slice_axis_move method by @jturner314 #1211
- iterators: Re-export IntoIter by @bluss #1370
- Fix unsafe blocks in
s![]macro by @jturner314 #1196 - Fix comparison with NumPy of slicing with negative step by @venkat0791 #1319
- Updated Windows
baseComputations to be Safer by @LazaroHurtado #1297 - Update README-quick-start.md by @fumseckk #1246
- Added stride support to
Windowsby @LazaroHurtado #1249 - Added select example to numpy user docs by @WillAyd #1294
- Add both approx features to the readme by @nilgoyette #1289
- Add NumPy examples combining slicing and assignment by @jturner314 #1210
- Fix contig check for single element arrays by @bluss #1362
- Export Linspace and Logspace iterators by @johann-cm #1348
- Use
clone_from()in two places by @ChayimFriedman2 #1347 - Update README-quick-start.md by @joelchen #1344
- Provide element-wise math functions for floats by @KmolYuan #1042
- Improve example in doc for columns method by @gkobeaga #1221
- Fix description of stack! in quick start by @jturner314 #1156
Tests, CI and Maintainer tasks
- CI: require rustfmt, nostd by @bluss #1411
- Prepare changelog for 0.16.0 by @bluss #1401
- Organize dependencies with workspace = true (cont.) by @bluss #1407
- Update to use dep: for features by @bluss #1406
- Organize the workspace of test crates a bit better by @bluss #1405
- Add rustfmt commit to ignored revisions for git blame by @lucascolley #1376
- The minimum amount of work required to fix our CI by @adamreichold #1388
- Fixed broke continuous integration badge by @juhotuho10 #1382
- Use mold linker to speed up ci by @bluss #1378
- Add rustformat config and CI by @bluss #1375
- Add docs to CI by @jturner314 #925
- Test using cargo-careful by @bluss #1371
- Further ci updates - numeric tests, and run all tests on PRs by @bluss #1369
- Setup ci so that most checks run in merge queue only by @bluss #1368
- Use merge queue by @bluss #1367
- Try to make the master branch shipshape by @adamreichold #1286
- Update ci - run cross tests only on master by @bluss #1366
- ndarray_for_numpy_users some example to code not pointed out to clippy by @higumachan #1360
- Fix minimum rust version mismatch in lib.rs by @HoKim98 #1352
- Fix MSRV build by pinning crossbeam crates. by @adamreichold #1345
- Fix new rustc lints to make the CI pass. by @adamreichold #1337
- Make Clippy happy and fix MSRV build by @adamreichold #1320
- small formatting fix in README.rst by @podusowski #1199
- Fix CI failures (mostly linting with clippy) by @aganders3 #1171
- Remove doc(hidden) attr from items in trait impls by @jturner314 #1165
Release notes
Open source →Featured Changes
- Better shape: Deprecate reshape, into_shape by @bluss #1310<br>
.into_shape()is now deprecated. Use.into_shape_with_order()or.to_shape()instead, which don't haveinto_shape's drawbacks.
New Features and Improvements
- Check for aliasing in
RawViewMut::from_shape_ptrwith a debug assertion by @bluss #1413 - Allow aliasing in ArrayView::from_shape by @bluss #1410
- Remove deprecations from 0.15.x by @bluss #1409
- Make
CowArrayan owned storage array, require Clone bound forinto_sharedby @jturner314 #1028 - Change
NdProducer::Dimofaxis_windows()toIx1by @jonasBoss #1305 - Add
squeeze()to dynamic dimension arrays by @barakugav #1396 - Add
flatten,flatten_with_orderandinto_flatto arrays by @barakugav #1397 - Make compatible with thumbv6m-none-eabi by @BjornTheProgrammer #1384
is_uniqueforArcArrayby @daniellga #1399- Add
triuandtrilmethods directly to ArrayBase by @akern40 #1386 - Fix styling of the BLAS integration heading. by @adamreichold #1390
- Implement
product_axisby @akern40 #1387 - Add reserve method for owned arrays by @ssande7 #1268
- Use inline on spit_at and smaller methods by @bluss #1381
- Update to Approx 0.5 by @bluss #1380
- Add .into_raw_vec_with_offset() and deprecate .into_raw_vec() by @bluss #1379
- Add additional array -> array view conversions by @bluss #1130
- implement DoubleEndedIterator for 1d
LanesIterby @Muthsera #1237 - Add Zip::any by @nilgoyette #1228
- Make the aview0, aview1, and aview2 free functions be const fns by @jturner314 #1132
- Add missing safety checks to
From<&[[A; N]]> for ArrayViewandFrom<&mut [[A; N]]> for ArrayViewMutby @jturner314 #1131 - derived Debug for Iter and IterMut by @biskwikman #1353
- Fix Miri errors for WindowsIter and ExactChunksIter/Mut by @jturner314 #1142
- Fix Miri failure with -Zmiri-tag-raw-pointers by @jturner314 #1138
- Track-caller panics by @xd009642 #975
- Add slice_axis_move method by @jturner314 #1211
- iterators: Re-export IntoIter by @bluss #1370
- Fix unsafe blocks in
s![]macro by @jturner314 #1196 - Fix comparison with NumPy of slicing with negative step by @venkat0791 #1319
- Updated Windows
baseComputations to be Safer by @LazaroHurtado #1297 - Update README-quick-start.md by @fumseckk #1246
- Added stride support to
Windowsby @LazaroHurtado #1249 - Added select example to numpy user docs by @WillAyd #1294
- Add both approx features to the readme by @nilgoyette #1289
- Add NumPy examples combining slicing and assignment by @jturner314 #1210
- Fix contig check for single element arrays by @bluss #1362
- Export Linspace and Logspace iterators by @johann-cm #1348
- Use
clone_from()in two places by @ChayimFriedman2 #1347 - Update README-quick-start.md by @joelchen #1344
- Provide element-wise math functions for floats by @KmolYuan #1042
- Improve example in doc for columns method by @gkobeaga #1221
- Fix description of stack! in quick start by @jturner314 #1156
Tests, CI and Maintainer tasks
- CI: require rustfmt, nostd by @bluss #1411
- Prepare changelog for 0.16.0 by @bluss #1401
- Organize dependencies with workspace = true (cont.) by @bluss #1407
- Update to use dep: for features by @bluss #1406
- Organize the workspace of test crates a bit better by @bluss #1405
- Add rustfmt commit to ignored revisions for git blame by @lucascolley #1376
- The minimum amount of work required to fix our CI by @adamreichold #1388
- Fixed broke continuous integration badge by @juhotuho10 #1382
- Use mold linker to speed up ci by @bluss #1378
- Add rustformat config and CI by @bluss #1375
- Add docs to CI by @jturner314 #925
- Test using cargo-careful by @bluss #1371
- Further ci updates - numeric tests, and run all tests on PRs by @bluss #1369
- Setup ci so that most checks run in merge queue only by @bluss #1368
- Use merge queue by @bluss #1367
- Try to make the master branch shipshape by @adamreichold #1286
- Update ci - run cross tests only on master by @bluss #1366
- ndarray_for_numpy_users some example to code not pointed out to clippy by @higumachan #1360
- Fix minimum rust version mismatch in lib.rs by @HoKim98 #1352
- Fix MSRV build by pinning crossbeam crates. by @adamreichold #1345
- Fix new rustc lints to make the CI pass. by @adamreichold #1337
- Make Clippy happy and fix MSRV build by @adamreichold #1320
- small formatting fix in README.rst by @podusowski #1199
- Fix CI failures (mostly linting with clippy) by @aganders3 #1171
- Remove doc(hidden) attr from items in trait impls by @jturner314 #1165
- Better shape: Deprecate reshape, into_shape by @bluss #1310
-
0.15.003 Aug 2024Release notes
Open source →New features
-
Support inserting new axes while slicing by [@jturner314]. This is an example:
let view = arr.slice(s![.., -1, 2..;-1, NewAxis]);https://github.com/rust-ndarray/ndarray/pull/570
-
Support two-sided broadcasting in arithmetic operations with arrays by [@SparrowLii]
This now allows, for example, addition of a 3 x 1 with a 1 x 3 array; the operands are in this case broadcast to 3 x 3 which is the shape of the result.
Note that this means that a new trait bound is required in some places when mixing dimensionality types of arrays in arithmetic operations.
https://github.com/rust-ndarray/ndarray/pull/898
-
Support for compiling ndarray as
no_std(using core and alloc) by [@xd009642] and [@bluss]https://github.com/rust-ndarray/ndarray/pull/861 <br> https://github.com/rust-ndarray/ndarray/pull/889
-
New methods
.cell_view()andArrayViewMut::into_cell_viewthat enable new ways of working with array elements as if they were in Cells - setting elements through shared views and broadcast views, by [@bluss].https://github.com/rust-ndarray/ndarray/pull/877
-
New methods
slice_each_axis/_mut/_inplacethat make it easier to slice a dynamic number of axes in some situations, by [@jturner314]https://github.com/rust-ndarray/ndarray/pull/913
-
New method
a.assign_to(b)with the inverse argument order compared to the existingb.assign(a)and some extra features like assigning into uninitialized arrays, By [@bluss].https://github.com/rust-ndarray/ndarray/pull/947
-
New methods
.std()and.var()for standard deviation and variance by [@kdubovikov]https://github.com/rust-ndarray/ndarray/pull/790
Enhancements
-
Ndarray can now correctly determine that arrays can be contiguous, even if they have negative strides, by [@SparrowLii]
https://github.com/rust-ndarray/ndarray/pull/885 <br> https://github.com/rust-ndarray/ndarray/pull/948
-
Improvements to
map_inplaceby [@jturner314]https://github.com/rust-ndarray/ndarray/pull/911
-
.into_dimensionalityperformance was improved for theIxDyntoIxDyncase by [@bluss]https://github.com/rust-ndarray/ndarray/pull/906
-
Improved performance for scalar + &array and &array + scalar operations by [@jturner314]
https://github.com/rust-ndarray/ndarray/pull/890
API changes
-
New constructors
Array::from_iterandArray::from_vecby [@bluss]. No new functionality, just that these constructors are available without trait imports.https://github.com/rust-ndarray/ndarray/pull/921
-
NdProducer::raw_dimis now a documented method by [@jturner314]https://github.com/rust-ndarray/ndarray/pull/918
-
AxisDescriptionis now a struct with field names, not a tuple struct by [@jturner314]. Its accessor methods are now deprecated.https://github.com/rust-ndarray/ndarray/pull/915
-
Methods for array comparison
abs_diff_eqandrelative_eqare now exposed as inherent methods too (no trait import needed), still under the approx feature flag by [@bluss]https://github.com/rust-ndarray/ndarray/pull/946
-
Changes to the slicing-related types and macro by [@jturner314] and [@bluss]:
- Remove the
Dimension::SliceArgassociated type, and add a newSliceArgtrait for this purpose. - Change the return type of the
s![]macro to an ownedSliceInforather than a reference. - Replace the
SliceOrIndexenum withSliceInfoElem, which has an additionalNewAxisvariant and does not have astep_bymethod. - Change the type parameters of
SliceInfoin order to support theNewAxisfunctionality and remove some trickyunsafecode. - Mark the
SliceInfo::newmethod asunsafe. The new implementations ofTryFromcan be used as a safe alternative. - Remove the
AsRef<SliceInfo<[SliceOrIndex], D>> for SliceInfo<T, D>implementation. Add the similarFrom<&'a SliceInfo<T, Din, Dout>> for SliceInfo<&'a [SliceInfoElem], Din, Dout>conversion as an alternative. - Change the expr
;step case in thes![]macro to error at compile time if an unsupported type for expr is used, instead of panicking at runtime.
https://github.com/rust-ndarray/ndarray/pull/570 <br> https://github.com/rust-ndarray/ndarray/pull/940 <br> https://github.com/rust-ndarray/ndarray/pull/943 <br> https://github.com/rust-ndarray/ndarray/pull/945 <br>
- Remove the
-
Removed already deprecated methods by [@bluss]:
- Remove deprecated
.all_close()- use approx feature and methods like.abs_diff_eqinstead - Mark
.scalar_sum()as deprecated - use.sum()instead - Remove deprecated
DataClone- useData + RawDataCloneinstead - Remove deprecated
ArrayView::into_slice- useto_slice()instead.
https://github.com/rust-ndarray/ndarray/pull/874
- Remove deprecated
-
Remove already deprecated methods: rows, cols (for row and column count; the new names are nrows and ncols) by [@bluss]
https://github.com/rust-ndarray/ndarray/pull/872
-
Renamed
Zipmethods by [@bluss] and [@SparrowLii]:apply->for_eachapply_collect->map_collectapply_collect_into->map_collect_into- (
par_prefixed methods renamed accordingly)
https://github.com/rust-ndarray/ndarray/pull/894 <br> https://github.com/rust-ndarray/ndarray/pull/904 <br>
-
Deprecate
Array::uninitializedand revamped its replacement by [@bluss]Please use new new
Array::uninitwhich is based onMaybeUninit(renamed fromArray::maybe_uninit, the old name is also deprecated).https://github.com/rust-ndarray/ndarray/pull/902 <br> https://github.com/rust-ndarray/ndarray/pull/876
-
Renamed methods (old names are now deprecated) by [@bluss] and [@jturner314]
genrows/_mut->rows/_mutgencolumns/_mut->columns/_mutstack_new_axis->stack(the new name already existed)visit->for_each
https://github.com/rust-ndarray/ndarray/pull/872 <br> https://github.com/rust-ndarray/ndarray/pull/937 <br> https://github.com/rust-ndarray/ndarray/pull/907 <br>
-
Updated
matrixmultiplydependency to 0.3.0 by [@bluss] and adding new feature flagmatrixmultiply-threadingto enable its threadinghttps://github.com/rust-ndarray/ndarray/pull/888 <br> https://github.com/rust-ndarray/ndarray/pull/938 <br>
-
Updated
num-complexdependency to 0.4.0 by [@bluss]https://github.com/rust-ndarray/ndarray/pull/952
Bug fixes
-
Fix
Zip::indexedfor the 0-dimensional case by [@jturner314]https://github.com/rust-ndarray/ndarray/pull/862
-
Fix bug in layout computation that broke parallel collect to f-order array in some circumstances by [@bluss]
https://github.com/rust-ndarray/ndarray/pull/900
-
Fix an unwanted panic in shape overflow checking by [@bluss]
https://github.com/rust-ndarray/ndarray/pull/855
-
Mark the
SliceInfo::newmethod asunsafedue to the requirement thatindices.as_ref()always return the same value when called multiple times, by [@bluss] and [@jturner314]https://github.com/rust-ndarray/ndarray/pull/570
Other changes
-
It was changed how we integrate with BLAS and
blas-src. Users of BLAS need to read the README for the updated instructions. Ndarray itself no longer has public dependency onblas-src. Changes by [@bluss].https://github.com/rust-ndarray/ndarray/pull/891 <br> https://github.com/rust-ndarray/ndarray/pull/951
-
Various improvements to tests and CI by [@jturner314]
https://github.com/rust-ndarray/ndarray/pull/934 <br> https://github.com/rust-ndarray/ndarray/pull/924 <br>
-
The
sort-axis.rsexample file's implementation of sort was bugfixed and now has tests, by [@dam5h] and [@bluss]https://github.com/rust-ndarray/ndarray/pull/916 <br> https://github.com/rust-ndarray/ndarray/pull/930
-
We now link to the #rust-sci room on matrix in the readme by [@jturner314]
https://github.com/rust-ndarray/ndarray/pull/619
-
Internal cleanup with builder-like methods for creating arrays by [@bluss]
https://github.com/rust-ndarray/ndarray/pull/908
-
Implementation fix of
.swap(i, j)by [@bluss]https://github.com/rust-ndarray/ndarray/pull/903
-
Minimum supported Rust version (MSRV) is Rust 1.49.
https://github.com/rust-ndarray/ndarray/pull/902
-
Minor improvements to docs by [@insideoutclub]
https://github.com/rust-ndarray/ndarray/pull/887
-
-
0.14.027 Mar 2021Release notes
Open source →New features
-
Zip::apply_collectandZip::par_apply_collectnow support all elements (not justCopyelements) by [@bluss] https://github.com/rust-ndarray/ndarray/pull/814
https://github.com/rust-ndarray/ndarray/pull/817 -
New function
stackby [@andrei-papou]
https://github.com/rust-ndarray/ndarray/pull/844
https://github.com/rust-ndarray/ndarray/pull/850
Enhancements
-
Handle inhomogeneous shape inputs better in Zip, in practice: guess better whether to prefer c- or f-order for the inner loop by [@bluss] https://github.com/rust-ndarray/ndarray/pull/809
-
Improve code sharing in some commonly used code by [@bluss] https://github.com/rust-ndarray/ndarray/pull/819
API changes
-
The old function
stackhas been renamed toconcatenate. A new functionstackwith numpy-like semantics have taken its place. Old usages ofstackshould change to useconcatenate.concatenateproduces an array with the same number of axes as the inputs.
stackproduces an array that has one more axis than the inputs.This change was unfortunately done without a deprecation period, due to the long period between releases.
https://github.com/rust-ndarray/ndarray/pull/844
https://github.com/rust-ndarray/ndarray/pull/850 -
Enum ErrorKind is now properly non-exhaustive and has lost its old placeholder invalid variant. By [@Zuse64] https://github.com/rust-ndarray/ndarray/pull/848
-
Remove deprecated items:
- RcArray (deprecated alias for ArcArray)
- Removed
subview_inplaceusecollapse_axis - Removed
subview_mutuseindex_axis_mut - Removed
into_subviewuseindex_axis_move - Removed
subviewuseindex_axis - Removed
slice_inplaceuseslice_collapse
-
Undeprecated
remove_axisbecause its replacement is hard to find out on your own. -
Update public external dependencies to new versions by [@Eijebong] and [@bluss]
- num-complex 0.3
- approx 0.4 (optional)
- blas-src 0.6.1 and openblas-src 0.9.0 (optional)
https://github.com/rust-ndarray/ndarray/pull/810
https://github.com/rust-ndarray/ndarray/pull/851
Other changes
-
Minor doc fixes by [@acj] https://github.com/rust-ndarray/ndarray/pull/834
-
Minor doc fixes by [@xd009642] https://github.com/rust-ndarray/ndarray/pull/847
-
The minimum required rust version is Rust 1.42.
-
Release management by [@bluss]
-
-
0.13.021 Dec 2020Release notes
Open source →New features
ndarray-parallelis merged intondarray. Use therayonfeature-flag to get access to parallel iterators and other parallelized methods. (#563 by [@bluss])- Add
logspaceandgeomspaceconstructors (#617 by [@JP-Ellis]) - Implement approx traits for
ArrayBase. They can be enabled using theapproxfeature-flag. (#581 by [@jturner314]) - Add
meanmethod (#580 by [@LukeMathWalker]) - Add
Zip::allto check if all elements satisfy a predicate (#615 by [@mneumann]) - Add
RawArrayViewandRawArrayViewMuttypes andRawData,RawDataMut, andRawDataClonetraits (#496 by [@jturner314]) - Add
CowArray,Cloneonwritearray (#632 by [@jturner314] and [@andrei-papou]) - Add
as_standard_layouttoArrayBase: it takes an array by reference and returns aCoWArrayin standard layout (#616 by [@jturner314] and [@andrei-papou]) - Add
Array2::from_diagmethod to create 2D arrays from a diagonal (#673 by [@rth]) - Add
foldmethod toZip(#684 by [@jturner314]) - Add
split_atmethod toAxisChunksIter/Mut(#691 by [@jturner314]) - Implement parallel iteration for
AxisChunksIter/Mut(#639 by [@nitsky]) - Add
into_scalarmethod toArrayView0andArrayViewMut0(#700 by [@LukeMathWalker]) - Add
accumulate_axis_inplacemethod toArrayBase(#611 by [@jturner314] and [@bluss]) - Add the
array!,azip!, ands!macros tondarray::prelude(#517 by [@jturner314])
Enhancements
- Improve performance for matrix multiplications when using the pure-Rust backend thanks to
matrix-multiply:v0.2(leverage SIMD instructions on x86-64 with runtime feature detection) (#556 by [@bluss]) - Improve performance of
foldfor iterators (#574 by [@jturner314]) - Improve performance of
nth_backfor iterators (#686 by [@jturner314]) - Improve performance of iterators for 1-d arrays (#614 by [@andrei-papou])
- Improve formatting for large arrays (#606 by [@andrei-papou] and [@LukeMathWalker], #633 and #707 by [@jturner314], and #713 by [@bluss])
- Arithmetic operations between arrays with different element types are now allowed when there is a scalar equivalent (#588 by [@jturner314])
.map_axis/_mutwon't panic on 0-lengthaxis(#579 by [@andrei-papou])- Various documentation improvements (by [@jturner314], [@JP-Ellis], [@LukeMathWalker], [@bluss])
API changes
- The
into_slicemethod on ArrayView is deprecated and renamed toto_slice(#646 by [@max-sixty]) RcArrayis deprecated in favour ofArcArray(#560 by [@bluss])into_sliceis renamed toto_slice.into_sliceis now deprecated (#646 by [@max-sixty])from_vecis deprecated in favour of using theFromto convert aVecinto anArray(#648 by [@max-sixty])mean_axisreturnsOption<A>instead ofA, to avoid panicking when invoked on a 0-length axis (#580 by [@LukeMathWalker])- Remove
rustc-serializefeature-flag.serdeis the recommended feature-flag for serialization (#557 by [@bluss]) rows/colsare renamed tonrows/ncols.rows/colsare now deprecated (#701 by [@bluss])- The usage of the
azip!macro has changed to be more similar toforloops (#626 by [@jturner314]) - For
var_axisandstd_axis, the constraints onddofand the trait bounds onAhave been made more strict (#515 by [@jturner314]) - For
mean_axis, the constraints onAhave changed (#518 by [@jturner314]) DataCloneis deprecated in favor of usingData + RawDataClone(#496 by [@jturner314])- The
Dimension::Patternassociated type now has more trait bounds (#634 by [@termoshtt]) Axis::index()now takesselfinstead of&self(#642 by [@max-sixty])- The bounds on the implementation of
HashforDimhave changed (#642 by [@max-sixty])
Bug fixes
- Prevent overflow when computing strides in
do_slice(#575 by [@jturner314]) - Fix issue with BLAS matrix-vector multiplication for array with only 1 non-trivial dimension (#585 by [@sebasv])
- Fix offset computation to avoid UB/panic when slicing in some edge cases (#636 by [@jturner314])
- Fix issues with axis iterators (#669 by [@jturner314])
- Fix handling of empty input to
s!macro (#714 by [@bluss] and #715 by [@jturner314])
Other changes
- Various improvements to
ndarray's CI pipeline (clippy,cargo fmt, etc. by [@max-sixty] and [@termoshtt]) - Bump minimum required Rust version to 1.37.
-
0.12.029 Nov 2020Release notes
Open source →- Add
var_axismethod for computing variance by @LukeMathWalker.- Add
map_mutandmap_axis_mutmethods (mutable variants ofmapandmap_axis) by @LukeMathWalker. - Add support for 128-bit integer scalars (
i128andu128). - Add support for slicing with inclusive ranges (
start..=endand..=end). - Relax constraint on closure from
FntoFnMutformapv,mapv_into,map_inplaceandmapv_inplace. - Implement
TrustedIteratorforIterMut. - Bump
num-traitsandnum-complexto version0.2. - Bump
blas-srcto version0.2. - Bump minimum required Rust version to 1.27.
- Additional contributors to this release: @ExpHP, @jturner314, @alexbool, @messense, @danmack, @nbro
- Add
- Add
-
0.11.023 Sep 2019Release notes
Open source →-
Allow combined slicing and subviews in a single operation by @jturner314 and @bluss
- Add support for individual indices (to indicate subviews) to the
s![]macro, and change the return type to&SliceInfo<[SliceOrIndex; n], Do>. - Change the argument type of the slicing methods to correspond to the new
s![]macro. - Replace the
Sitype withSliceOrIndex. - Add a new
Slicetype that is similar to the oldSitype.
- Add support for individual indices (to indicate subviews) to the
-
Add support for more index types (e.g.
usize) to thes![]macro by @jturner314 -
Rename
.islice()to.slice_inplace()by @jturner314 -
Rename
.isubview()to.subview_inplace()by @jturner314 -
Add
.slice_move(),.slice_axis(),.slice_axis_mut(), and.slice_axis_inplace()methods by @jturner314 -
Add
Dimension::NDIMassociated constant by @jturner314 -
Change trait bounds for arithmetic ops between an array (by value) and a reference to an array or array view (“array1 (op) &array2”); before, an
ArrayViewMutwas supported on the left hand side, now, the left hand side must not be a view. (#380) by @jturner314 -
Remove deprecated methods (
.whole_chunks(),.whole_chunks_mut(),.sum(), and.mean(); replaced by.exact_chunks(),.exact_chunks_mut(),.sum_axis(), and.mean_axis(), respectively) by @bluss -
Updated to the latest blas (optional) dependencies. See instructions in the README.
-
Minimum required Rust version is 1.22.
-
-
0.10.010 Sep 2019Nothing published for this version
-
0.9.019 Nov 2018Nothing published for this version
-
0.8.001 Sep 2018Nothing published for this version
-
0.7.029 Dec 2017Nothing published for this version
-
0.6.121 Sep 2017Nothing published for this version
-
0.6.017 Jul 2017Nothing published for this version
-
0.5.009 Apr 2017Nothing published for this version
-
0.4.002 Mar 2017Nothing published for this version
-
0.3.126 Nov 2016Nothing published for this version
-
0.3.021 Nov 2016Nothing published for this version
-
0.2.006 Jun 2016Nothing published for this version
-
0.1.117 Apr 2016Nothing published for this version
-
0.1.029 Mar 2016Nothing published for this version