[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
NumpyArray< N, T, Stride > Class Template Reference |
#include <vigra/numpy_array.hxx>
Public Types | |
typedef view_type::const_iterator | const_iterator |
typedef view_type::const_pointer | const_pointer |
typedef view_type::const_reference | const_reference |
typedef view_type::const_traverser | const_traverser |
typedef view_type::difference_type | difference_type |
typedef view_type::difference_type_1 | difference_type_1 |
typedef view_type::iterator | iterator |
typedef NumpyAnyArray::difference_type | permutation_type |
typedef view_type::pointer | pointer |
typedef view_type::reference | reference |
typedef view_type::size_type | size_type |
typedef view_type::traverser | traverser |
typedef view_type::value_type | value_type |
typedef MultiArrayView< N, typename ArrayTraits::value_type, Stride > | view_type |
Public Types inherited from MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, Stride > | |
enum | ActualDimension |
typedef StridedScanOrderIterator < actual_dimension, NumpyArrayTraits< N, T, Stride > ::value_type, NumpyArrayTraits < N, T, Stride > ::value_typeconst &, NumpyArrayTraits< N, T, Stride >::value_typeconst * > | const_iterator |
typedef const value_type * | const_pointer |
typedef const value_type & | const_reference |
typedef vigra::detail::MultiIteratorChooser < Stride >::template Traverser < actual_dimension, NumpyArrayTraits< N, T, Stride > ::value_type, NumpyArrayTraits < N, T, Stride > ::value_typeconst &, NumpyArrayTraits< N, T, Stride >::value_typeconst * > ::type | const_traverser |
typedef MultiArrayShape < actual_dimension >::type | difference_type |
typedef MultiArrayIndex | difference_type_1 |
typedef StridedScanOrderIterator < actual_dimension, NumpyArrayTraits< N, T, Stride > ::value_type, NumpyArrayTraits < N, T, Stride >::value_type &, NumpyArrayTraits< N, T, Stride >::value_type * > | iterator |
typedef difference_type | key_type |
typedef MultiArray< N, NumpyArrayTraits< N, T, Stride > ::value_type > | matrix_type |
typedef value_type * | pointer |
typedef value_type & | reference |
typedef difference_type | size_type |
typedef vigra::detail::MultiIteratorChooser < Stride >::template Traverser < actual_dimension, NumpyArrayTraits< N, T, Stride > ::value_type, NumpyArrayTraits < N, T, Stride >::value_type &, NumpyArrayTraits< N, T, Stride >::value_type * >::type | traverser |
typedef NumpyArrayTraits< N, T, Stride >::value_type | value_type |
typedef MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, Stride > | view_type |
Public Types inherited from NumpyAnyArray | |
typedef ArrayVector< npy_intp > | difference_type |
difference type | |
Public Member Functions | |
void | makeCopy (PyObject *obj, bool strict=false) |
bool | makeReference (PyObject *obj, bool=false) |
bool | makeReference (const NumpyAnyArray &array, bool strict=false) |
void | makeReferenceUnchecked (PyObject *obj) |
void | makeUnsafeReference (const view_type &multiArrayView) |
NumpyArray (PyObject *obj=0, bool createCopy=false) | |
NumpyArray (const NumpyArray &other, bool createCopy=false) | |
template<class U , class S > | |
NumpyArray (const MultiArrayView< N, U, S > &other) | |
NumpyArray (difference_type const &shape, std::string const &order="") | |
NumpyArray (TaggedShape const &tagged_shape) | |
NumpyArray (const NumpyAnyArray &other, bool createCopy=false) | |
NumpyArray & | operator= (const NumpyArray &other) |
template<class U , class S > | |
NumpyArray & | operator= (const NumpyArray< N, U, S > &other) |
template<class U , class S > | |
NumpyArray & | operator= (const MultiArrayView< N, U, S > &other) |
NumpyArray & | operator= (const NumpyAnyArray &other) |
template<class U > | |
ArrayVector< U > | permuteLikewise (ArrayVector< U > const &data) const |
template<class U , int K> | |
TinyVector< U, K > | permuteLikewise (TinyVector< U, K > const &data) const |
template<int K> | |
TinyVector< npy_intp, K > | permuteLikewise () const |
void | reshape (difference_type const &shape) |
void | reshapeIfEmpty (difference_type const &shape, std::string message="") |
void | reshapeIfEmpty (TaggedShape tagged_shape, std::string message="") |
Public Member Functions inherited from MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, Stride > | |
bool | all () const |
bool | any () const |
iterator | begin () |
const_iterator | begin () const |
MultiArrayView< N-1, NumpyArrayTraits< N, T, Stride > ::value_type, typename vigra::detail::MaybeStrided < Stride, M >::type > | bind (difference_type_1 d) const |
MultiArrayView< N-1, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | bindAt (difference_type_1 m, difference_type_1 d) const |
MultiArrayView< N, typename ExpandElementResult < NumpyArrayTraits< N, T, Stride >::value_type >::type, StridedArrayTag > | bindElementChannel (difference_type_1 i) const |
MultiArrayView< N-M, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | bindInner (const TinyVector< Index, M > &d) const |
MultiArrayView< N-1, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | bindInner (difference_type_1 d) const |
MultiArrayView< N-M, NumpyArrayTraits< N, T, Stride > ::value_type, Stride > | bindOuter (const TinyVector< Index, M > &d) const |
MultiArrayView< N-1, NumpyArrayTraits< N, T, Stride > ::value_type, Stride > | bindOuter (difference_type_1 d) const |
difference_type_1 | coordinateToScanOrderIndex (const difference_type &d) const |
void | copy (const MultiArrayView &rhs) |
void | copy (const MultiArrayView< N, U, CN > &rhs) |
pointer | data () const |
MultiArrayView < 1, NumpyArrayTraits< N, T, Stride >::value_type, StridedArrayTag > | diagonal () const |
difference_type_1 | elementCount () const |
iterator | end () |
const_iterator | end () const |
MultiArrayView< N+1, typename ExpandElementResult < NumpyArrayTraits< N, T, Stride >::value_type >::type, StridedArrayTag > | expandElements (difference_type_1 d) const |
bool | hasData () const |
difference_type_1 | height () const |
MultiArrayView & | init (const U &init) |
MultiArrayView< N+1, NumpyArrayTraits< N, T, Stride > ::value_type, Stride > | insertSingletonDimension (difference_type_1 i) const |
bool | isInside (difference_type const &p) const |
bool | isOutside (difference_type const &p) const |
bool | isUnstrided (unsigned int dimension=N-1) const |
void | meanVariance (U *mean, U *variance) const |
void | minmax (NumpyArrayTraits< N, T, Stride >::value_type *minimum, NumpyArrayTraits< N, T, Stride >::value_type *maximum) const |
MultiArrayView () | |
MultiArrayView (const MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, Stride > &other) | |
MultiArrayView (const difference_type &shape, const_pointer ptr) | |
MultiArrayView (const difference_type &shape, const difference_type &stride, const_pointer ptr) | |
MultiArrayView (BasicImage< NumpyArrayTraits< N, T, Stride >::value_type, ALLOC > const &image) | |
MultiArrayView< N, Multiband < value_type >, Stride > | multiband () const |
NormTraits< MultiArrayView > ::NormType | norm (int type=2, bool useSquaredNorm=true) const |
operator MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, StridedArrayTag > () const | |
bool | operator!= (MultiArrayView< N, U, C1 > const &rhs) const |
reference | operator() (difference_type_1 x) |
reference | operator() (difference_type_1 x, difference_type_1 y) |
reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z) |
reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z, difference_type_1 u) |
reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z, difference_type_1 u, difference_type_1 v) |
const_reference | operator() (difference_type_1 x) const |
const_reference | operator() (difference_type_1 x, difference_type_1 y) const |
const_reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z) const |
const_reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z, difference_type_1 u) const |
const_reference | operator() (difference_type_1 x, difference_type_1 y, difference_type_1 z, difference_type_1 u, difference_type_1 v) const |
MultiArrayView & | operator*= (MultiArrayView< N, U, C1 > const &rhs) |
MultiArrayView & | operator*= (NumpyArrayTraits< N, T, Stride >::value_typeconst &rhs) |
MultiArrayView & | operator*= (multi_math::MultiMathOperand< Expression > const &rhs) |
MultiArrayView & | operator+= (MultiArrayView< N, U, C1 > const &rhs) |
MultiArrayView & | operator+= (NumpyArrayTraits< N, T, Stride >::value_typeconst &rhs) |
MultiArrayView & | operator+= (multi_math::MultiMathOperand< Expression > const &rhs) |
MultiArrayView & | operator-= (MultiArrayView< N, U, C1 > const &rhs) |
MultiArrayView & | operator-= (NumpyArrayTraits< N, T, Stride >::value_typeconst &rhs) |
MultiArrayView & | operator-= (multi_math::MultiMathOperand< Expression > const &rhs) |
MultiArrayView & | operator/= (MultiArrayView< N, U, C1 > const &rhs) |
MultiArrayView & | operator/= (NumpyArrayTraits< N, T, Stride >::value_typeconst &rhs) |
MultiArrayView & | operator/= (multi_math::MultiMathOperand< Expression > const &rhs) |
MultiArrayView & | operator= (MultiArrayView const &rhs) |
MultiArrayView & | operator= (MultiArrayView< N, U, C1 > const &rhs) |
MultiArrayView & | operator= (value_type const &v) |
MultiArrayView & | operator= (multi_math::MultiMathOperand< Expression > const &rhs) |
bool | operator== (MultiArrayView< N, U, C1 > const &rhs) const |
reference | operator[] (const difference_type &d) |
const_reference | operator[] (const difference_type &d) const |
MultiArrayView< N-M, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | operator[] (const TinyVector< MultiArrayIndex, M > &d) const |
reference | operator[] (difference_type_1 d) |
const_reference | operator[] (difference_type_1 d) const |
MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | permuteStridesAscending () const |
MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | permuteStridesDescending () const |
U | product () const |
void | reset () |
difference_type | scanOrderIndexToCoordinate (difference_type_1 d) const |
const difference_type & | shape () const |
difference_type_1 | shape (difference_type_1 n) const |
difference_type_1 | size () const |
difference_type_1 | size (difference_type_1 n) const |
NormTraits< MultiArrayView > ::SquaredNormType | squaredNorm () const |
const difference_type & | stride () const |
difference_type_1 | stride (int n) const |
MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | stridearray (const difference_type &s) const |
difference_type | strideOrdering () const |
MultiArrayView | subarray (difference_type p, difference_type q) const |
U | sum () const |
void | sum (MultiArrayView< N, U, S > sums) const |
void | swap (MultiArrayView &other) |
void | swapData (MultiArrayView rhs) |
void | swapData (MultiArrayView< N, T2, C2 > rhs) |
MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | transpose () const |
MultiArrayView< N, NumpyArrayTraits< N, T, Stride > ::value_type, StridedArrayTag > | transpose (const difference_type &permutation) const |
traverser | traverser_begin () |
const_traverser | traverser_begin () const |
traverser | traverser_end () |
const_traverser | traverser_end () const |
difference_type_1 | width () const |
Public Member Functions inherited from NumpyAnyArray | |
python_ptr | axistags () const |
int | dtype () const |
template<class Shape > | |
NumpyAnyArray | getitem (Shape start, Shape stop) const |
bool | hasData () const |
void | makeCopy (PyObject *obj, PyTypeObject *type=0) |
bool | makeReference (PyObject *obj, PyTypeObject *type=0) |
MultiArrayIndex | ndim () const |
NumpyAnyArray (PyObject *obj=0, bool createCopy=false, PyTypeObject *type=0) | |
NumpyAnyArray (NumpyAnyArray const &other, bool createCopy=false, PyTypeObject *type=0) | |
NumpyAnyArray & | operator= (NumpyAnyArray const &other) |
PyArrayObject * | pyArray () const |
PyObject * | pyObject () const |
difference_type | shape () const |
MultiArrayIndex | spatialDimensions () const |
difference_type | strideOrdering () const |
Static Public Member Functions | |
static bool | isCopyCompatible (PyObject *obj) |
static bool | isReferenceCompatible (PyObject *obj) |
static bool | isStrictlyCompatible (PyObject *obj) |
static difference_type | standardStrideOrdering () |
Static Public Member Functions inherited from MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, Stride > | |
static difference_type | strideOrdering (difference_type strides) |
Additional Inherited Members | |
Protected Attributes inherited from MultiArrayView< N, NumpyArrayTraits< N, T, Stride >::value_type, Stride > | |
pointer | m_ptr |
difference_type | m_shape |
difference_type | m_stride |
Provide the MultiArrayView interface for a Python array.
This class inherits from both vigra::MultiArrayView and vigra::NumpyAnyArray in order to support easy and safe application of VIGRA functions to Python arrays.
#include <vigra/numpy_array.hxx>
Namespace: vigra
typedef MultiArrayView<N, typename ArrayTraits::value_type, Stride> view_type |
the view type associated with this array.
typedef view_type::value_type value_type |
the array's value type
typedef view_type::pointer pointer |
pointer type
const pointer type
typedef view_type::reference reference |
reference type (result of operator[])
const reference type (result of operator[] const)
typedef view_type::size_type size_type |
size type
difference type (used for multi-dimensional offsets and indices)
difference and index type for a single dimension
type of an array specifying an axis permutation
typedef view_type::traverser traverser |
traverser type
traverser type to const data
typedef view_type::iterator iterator |
sequential (random access) iterator type
sequential (random access) const iterator type
|
explicit |
Construct from a given PyObject pointer. When the given python object is NULL, the internal python array will be NULL and hasData() will return false.
Otherwise, the function attempts to create a new reference to the given Python object, unless copying is forced by setting createCopy to true. If either of this fails, the function throws an exception. This will not happen if isReferenceCompatible(obj) (in case of creating a new reference) or isCopyCompatible(obj) (in case of copying) have returned true beforehand.
NumpyArray | ( | const NumpyArray< N, T, Stride > & | other, |
bool | createCopy = false |
||
) |
Copy constructor; does not copy the memory, but creates a new reference to the same underlying python object, unless a copy is forced by setting createCopy to true. (If the source object has no data, this one will have no data, too.)
|
explicit |
Allocate new memory and copy data from a MultiArrayView.
|
explicit |
Construct a new array object, allocating an internal python ndarray of the given shape in the given order (default: VIGRA order), initialized with zeros.
An exception is thrown when construction fails.
|
explicit |
Construct a new array object, allocating an internal python ndarray according to the given tagged shape, initialized with zeros.
An exception is thrown when construction fails.
|
explicit |
Constructor from NumpyAnyArray. Equivalent to NumpyArray(other.pyObject())
NumpyArray& operator= | ( | const NumpyArray< N, T, Stride > & | other | ) |
Assignment operator. If this is already a view with data (i.e. hasData() is true) and the shapes match, the RHS array contents are copied. If this is an empty view, assignment is identical to makeReferenceUnchecked(other.pyObject()). See MultiArrayView::operator= for further information on semantics.
NumpyArray& operator= | ( | const NumpyArray< N, U, S > & | other | ) |
Assignment operator. If this is already a view with data (i.e. hasData() is true) and the shapes match, the RHS array contents are copied. If this is an empty view, assignment is identical to makeReferenceUnchecked(other.pyObject()). See MultiArrayView::operator= for further information on semantics.
NumpyArray& operator= | ( | const MultiArrayView< N, U, S > & | other | ) |
Assignment operator. If this is already a view with data (i.e. hasData() is true) and the shapes match, the RHS array contents are copied. If this is an empty view, a new buffer with the RHS shape is allocated before copying.
NumpyArray& operator= | ( | const NumpyAnyArray & | other | ) |
Assignment operator. If this is already a view with data (i.e. hasData() is true) and the shapes match, the RHS array contents are copied. If this is an empty view, assignment is identical to makeReference(other.pyObject()). Otherwise, an exception is thrown.
ArrayVector<U> permuteLikewise | ( | ArrayVector< U > const & | data | ) | const |
Permute the entries of the given array data exactly like the axes of this NumpyArray were permuted upon conversion from numpy.
TinyVector<U, K> permuteLikewise | ( | TinyVector< U, K > const & | data | ) | const |
Permute the entries of the given array data exactly like the axes of this NumpyArray were permuted upon conversion from numpy.
TinyVector<npy_intp, K> permuteLikewise | ( | ) | const |
Get the permutation of the axes of this NumpyArray that was performed upon conversion from numpy.
|
static |
Test whether a given python object is a numpy array that can be converted (copied) into an array compatible to this NumpyArray type. This means that the array's shape conforms to the requirements of makeCopy().
|
static |
Test whether a given python object is a numpy array with a compatible dtype and the correct shape and strides, so that it can be referenced as a view by this NumpyArray type (i.e. it conforms to the requirements of makeReference()).
|
static |
Deprecated, use isReferenceCompatible(obj) instead.
|
static |
Create a vector representing the standard stride ordering of a NumpyArray. That is, we get a vector representing the range [0,...,N-1], which denotes the stride ordering for Fortran order.
void makeReferenceUnchecked | ( | PyObject * | obj | ) |
Set up a view to the given object without checking compatibility. This function must not be used unless isReferenceCompatible(obj) returned true on the given object (otherwise, a crash is likely).
bool makeReference | ( | PyObject * | obj, |
bool | = false |
||
) |
Try to set up a view referencing the given PyObject. Returns false if the python object is not a compatible numpy array (see isReferenceCompatible()).
The second parameter ('strict') is deprecated and will be ignored.
bool makeReference | ( | const NumpyAnyArray & | array, |
bool | strict = false |
||
) |
Try to set up a view referencing the same data as the given NumpyAnyArray. This overloaded variant simply calls makeReference() on array.pyObject(). The parameter strict is deprecated and will be ignored.
void makeUnsafeReference | ( | const view_type & | multiArrayView | ) |
Set up an unsafe reference to the given MultiArrayView. ATTENTION: This creates a numpy.ndarray that points to the same data, but does not own it, so it must be ensured by other means that the memory does not get freed before the end of the ndarray's lifetime! (One elegant way would be to set the 'base' attribute of the resulting ndarray to a python object which directly or indirectly holds the memory of the given MultiArrayView.)
void makeCopy | ( | PyObject * | obj, |
bool | strict = false |
||
) |
Try to create a copy of the given PyObject. Raises an exception when obj is not a compatible array (see isCopyCompatible() or isReferenceCompatible(), according to the parameter strict) or the Python constructor call failed.
void reshape | ( | difference_type const & | shape | ) |
Allocate new memory with the given shape and initialize with zeros.
If a stride ordering is given, the resulting array will have this stride ordering, when it is compatible with the array's memory layout (unstrided arrays only permit the standard ascending stride ordering).
Note: this operation invalidates dependent objects (MultiArrayViews and iterators)
void reshapeIfEmpty | ( | difference_type const & | shape, |
std::string | message = "" |
||
) |
When this array has no data, allocate new memory with the given shape and initialize with zeros. Otherwise, check if the new shape matches the old shape and throw a precondition exception with the given message if not.
void reshapeIfEmpty | ( | TaggedShape | tagged_shape, |
std::string | message = "" |
||
) |
When this array has no data, allocate new memory with the given shape and initialize with zeros. Otherwise, check if the new shape matches the old shape and throw a precondition exception with the given message if not.
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|