Struct ndarray_stats::histogram::Bins
source · pub struct Bins<A: Ord> { /* private fields */ }
Expand description
Bins
is a sorted collection of non-overlapping
1-dimensional intervals.
All intervals are left-inclusive and right-exclusive.
Example:
extern crate ndarray_stats;
extern crate noisy_float;
use ndarray_stats::histogram::{Edges, Bins};
use noisy_float::types::n64;
let edges = Edges::from(vec![n64(0.), n64(1.), n64(2.)]);
let bins = Bins::new(edges);
// first bin
assert_eq!(
bins.index(0),
n64(0.)..n64(1.) // n64(1.) is not included in the bin!
);
// second bin
assert_eq!(
bins.index(1),
n64(1.)..n64(2.)
);
Implementations
sourceimpl<A: Ord> Bins<A>
impl<A: Ord> Bins<A>
sourcepub fn new(edges: Edges<A>) -> Self
pub fn new(edges: Edges<A>) -> Self
Given a collection of Edges
, it returns the corresponding Bins
instance.
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of bins.
Example:
extern crate ndarray_stats;
extern crate noisy_float;
use ndarray_stats::histogram::{Edges, Bins};
use noisy_float::types::n64;
let edges = Edges::from(vec![n64(0.), n64(1.), n64(2.)]);
let bins = Bins::new(edges);
assert_eq!(
bins.len(),
2
);
sourcepub fn index_of(&self, value: &A) -> Option<usize>
pub fn index_of(&self, value: &A) -> Option<usize>
Given value
, it returns:
Some(i)
, if thei
-th bin inself
containsvalue
;None
, ifvalue
does not belong to any of the bins inself
.
Example:
extern crate ndarray_stats;
use ndarray_stats::histogram::{Edges, Bins};
let edges = Edges::from(vec![0, 2, 4, 6]);
let bins = Bins::new(edges);
let value = 1;
assert_eq!(
bins.index_of(&1),
Some(0)
);
assert_eq!(
bins.index(bins.index_of(&1).unwrap()),
0..2
);
sourcepub fn range_of(&self, value: &A) -> Option<Range<A>>where
A: Clone,
pub fn range_of(&self, value: &A) -> Option<Range<A>>where
A: Clone,
Given value
, it returns:
Some(left_edge..right_edge)
, if there exists a bin inself
such thatleft_edge <= value < right_edge
;None
, otherwise.
Example:
extern crate ndarray_stats;
use ndarray_stats::histogram::{Edges, Bins};
let edges = Edges::from(vec![0, 2, 4, 6]);
let bins = Bins::new(edges);
assert_eq!(
bins.range_of(&1),
Some(0..2)
);
assert_eq!(
bins.range_of(&10),
None
);
sourcepub fn index(&self, index: usize) -> Range<A>where
A: Clone,
pub fn index(&self, index: usize) -> Range<A>where
A: Clone,
Get the i
-th bin.
Panics if index
is out of bounds.
Example:
extern crate ndarray_stats;
use ndarray_stats::histogram::{Edges, Bins};
let edges = Edges::from(vec![1, 5, 10, 20]);
let bins = Bins::new(edges);
assert_eq!(
bins.index(1),
5..10
);
Trait Implementations
sourceimpl<A: PartialEq + Ord> PartialEq<Bins<A>> for Bins<A>
impl<A: PartialEq + Ord> PartialEq<Bins<A>> for Bins<A>
impl<A: Eq + Ord> Eq for Bins<A>
impl<A: Ord> StructuralEq for Bins<A>
impl<A: Ord> StructuralPartialEq for Bins<A>
Auto Trait Implementations
impl<A> RefUnwindSafe for Bins<A>where
A: RefUnwindSafe,
impl<A> Send for Bins<A>where
A: Send,
impl<A> Sync for Bins<A>where
A: Sync,
impl<A> Unpin for Bins<A>where
A: Unpin,
impl<A> UnwindSafe for Bins<A>where
A: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more