HepMC3 event record library
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends
array Class Reference
+ Inheritance diagram for array:
+ Collaboration diagram for array:

Public Types

enum  { c_style = detail::npy_api::NPY_ARRAY_C_CONTIGUOUS_, f_style = detail::npy_api::NPY_ARRAY_F_CONTIGUOUS_, forcecast = detail::npy_api::NPY_ARRAY_FORCECAST_ }
 
using ShapeContainer = detail::any_container< ssize_t >
 
using StridesContainer = detail::any_container< ssize_t >
 

Public Member Functions

 array (const pybind11::dtype &dt, ShapeContainer shape, StridesContainer strides, const void *ptr=nullptr, handle base=handle())
 
 array (const pybind11::dtype &dt, ShapeContainer shape, const void *ptr=nullptr, handle base=handle())
 
template<typename T , typename = detail::enable_if_t<std::is_integral<T>::value && !std::is_same<bool, T>::value>>
 array (const pybind11::dtype &dt, T count, const void *ptr=nullptr, handle base=handle())
 
template<typename T >
 array (ShapeContainer shape, StridesContainer strides, const T *ptr, handle base=handle())
 
template<typename T >
 array (ShapeContainer shape, const T *ptr, handle base=handle())
 
template<typename T >
 array (ssize_t count, const T *ptr, handle base=handle())
 
 array (const buffer_info &info, handle base=handle())
 
pybind11::dtype dtype () const
 Array descriptor (dtype) More...
 
ssize_t size () const
 Total number of elements. More...
 
ssize_t itemsize () const
 Byte size of a single element. More...
 
ssize_t nbytes () const
 Total number of bytes. More...
 
ssize_t ndim () const
 Number of dimensions. More...
 
object base () const
 Base object. More...
 
const ssize_t * shape () const
 Dimensions of the array. More...
 
ssize_t shape (ssize_t dim) const
 Dimension along a given axis. More...
 
const ssize_t * strides () const
 Strides of the array. More...
 
ssize_t strides (ssize_t dim) const
 Stride along a given axis. More...
 
int flags () const
 Return the NumPy array flags. More...
 
bool writeable () const
 If set, the array is writeable (otherwise the buffer is read-only) More...
 
bool owndata () const
 If set, the array owns the data (will be freed when the array is deleted) More...
 
template<typename... Ix>
const void * data (Ix... index) const
 
template<typename... Ix>
void * mutable_data (Ix... index)
 
template<typename... Ix>
ssize_t offset_at (Ix... index) const
 
ssize_t offset_at () const
 
template<typename... Ix>
ssize_t index_at (Ix... index) const
 
template<typename T , ssize_t Dims = -1>
detail::unchecked_mutable_reference< T, Dims > mutable_unchecked () &
 
template<typename T , ssize_t Dims = -1>
detail::unchecked_reference< T, Dims > unchecked () const &
 
array squeeze ()
 Return a new view with all of the dimensions of length 1 removed. More...
 
void resize (ShapeContainer new_shape, bool refcheck=true)
 
buffer_info request (bool writable=false) const
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
handle release ()
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
template<typename T >
cast () const
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 
const handledec_ref () const &
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator== (const handle &h) const
 
bool operator!= (const handle &h) const
 
bool check () const
 

Static Public Member Functions

static array ensure (handle h, int ExtraFlags=0)
 

Data Fields

bool is_borrowed: handle(h) { if (is_borrowed) inc_ref()
 

Protected Member Functions

void fail_dim_check (ssize_t dim, const std::string &msg) const
 
template<typename... Ix>
ssize_t byte_offset (Ix... index) const
 
void check_writeable () const
 
template<typename... Ix>
void check_dimensions (Ix... index) const
 
void check_dimensions_impl (ssize_t, const ssize_t *) const
 
template<typename... Ix>
void check_dimensions_impl (ssize_t axis, const ssize_t *shape, ssize_t i, Ix... index) const
 

Static Protected Member Functions

static PyObject * raw_array (PyObject *ptr, int ExtraFlags=0)
 Create array from any object – always returns a new reference. More...
 

Protected Attributes

PyObject * m_ptr = nullptr
 

Friends

template<typename , typename >
struct detail::npy_format_descriptor
 

Detailed Description

Definition at line 556 of file numpy.h.

Member Function Documentation

◆ base()

object base ( ) const
inline

Base object.

Definition at line 659 of file numpy.h.

◆ cast()

T cast ( ) const
inherited

Attempt to cast the Python object into the given C++ type. A cast_error will be throw upon failure.

Definition at line 1743 of file cast.h.

◆ data()

const void* data ( Ix...  index) const
inline

Pointer to the contained data. If index is not provided, points to the beginning of the buffer. May throw if the index would lead to out of bounds access.

Definition at line 704 of file numpy.h.

References offset_at().

◆ dec_ref()

const handle& dec_ref ( ) const &
inlineinherited

Manually decrease the reference count of the Python object. Usually, it is preferable to use the object class which derives from handle and calls this function automatically. Returns a reference to itself.

Definition at line 199 of file pytypes.h.

◆ dtype()

pybind11::dtype dtype ( ) const
inline

Array descriptor (dtype)

Definition at line 634 of file numpy.h.

◆ ensure()

static array ensure ( handle  h,
int  ExtraFlags = 0 
)
inlinestatic

Ensure that the argument is a NumPy array In case of an error, nullptr is returned and the Python error is cleared.

Definition at line 784 of file numpy.h.

References handle::ptr(), and raw_array().

◆ flags()

int flags ( ) const
inline

Return the NumPy array flags.

Definition at line 688 of file numpy.h.

◆ inc_ref()

const handle& inc_ref ( ) const &
inlineinherited

Manually increase the reference count of the Python object. Usually, it is preferable to use the object class which derives from handle and calls this function automatically. Returns a reference to itself.

Definition at line 192 of file pytypes.h.

◆ index_at()

ssize_t index_at ( Ix...  index) const
inline

Item count from beginning of the array to a given index (full or partial). May throw if the index would lead to out of bounds access.

Definition at line 728 of file numpy.h.

References itemsize(), and offset_at().

◆ itemsize()

ssize_t itemsize ( ) const
inline

Byte size of a single element.

Definition at line 644 of file numpy.h.

◆ mutable_data()

void* mutable_data ( Ix...  index)
inline

Mutable pointer to the contained data. If index is not provided, points to the beginning of the buffer. May throw if the index would lead to out of bounds access. May throw if the array is not writeable.

Definition at line 711 of file numpy.h.

References offset_at().

◆ mutable_unchecked()

detail::unchecked_mutable_reference<T, Dims> mutable_unchecked ( ) &
inline

Returns a proxy object that provides access to the array's data without bounds or dimensionality checking. Will throw if the array is missing the writeable flag. Use with care: the array must not be destroyed or reshaped for the duration of the returned object, and the caller must take care not to access invalid dimensions or dimension indices.

Definition at line 738 of file numpy.h.

References mutable_data(), ndim(), shape(), and strides().

◆ nbytes()

ssize_t nbytes ( ) const
inline

Total number of bytes.

Definition at line 649 of file numpy.h.

References itemsize(), and size().

◆ ndim()

ssize_t ndim ( ) const
inline

Number of dimensions.

Definition at line 654 of file numpy.h.

◆ offset_at()

ssize_t offset_at ( Ix...  index) const
inline

Byte offset from beginning of the array to a given index (full or partial). May throw if the index would lead to out of bounds access.

Definition at line 718 of file numpy.h.

References ndim().

◆ operator bool()

operator bool ( ) const
inlineexplicitinherited

Return true when the handle wraps a valid Python object.

Definition at line 207 of file pytypes.h.

◆ operator==()

bool operator== ( const handle h) const
inlineinherited

Deprecated: Check that the underlying pointers are the same. Equivalent to obj1 is obj2 in Python.

Definition at line 213 of file pytypes.h.

◆ owndata()

bool owndata ( ) const
inline

If set, the array owns the data (will be freed when the array is deleted)

Definition at line 698 of file numpy.h.

◆ ptr()

PyObject* ptr ( ) const
inlineinherited

Return the underlying PyObject * pointer.

Definition at line 184 of file pytypes.h.

◆ raw_array()

static PyObject* raw_array ( PyObject *  ptr,
int  ExtraFlags = 0 
)
inlinestaticprotected

Create array from any object – always returns a new reference.

Definition at line 825 of file numpy.h.

References handle::ptr().

◆ release()

handle release ( )
inlineinherited

Resets the internal pointer to nullptr without decreasing the object's reference count. The function returns a raw handle to the original Python object.

Definition at line 249 of file pytypes.h.

References handle::handle().

◆ resize()

void resize ( ShapeContainer  new_shape,
bool  refcheck = true 
)
inline

Resize array to given shape If refcheck is true and more that one reference exist to this array then resize will succeed only if it makes a reshape, i.e. original size doesn't change

Definition at line 768 of file numpy.h.

◆ shape() [1/2]

const ssize_t* shape ( ) const
inline

Dimensions of the array.

Definition at line 664 of file numpy.h.

◆ shape() [2/2]

ssize_t shape ( ssize_t  dim) const
inline

Dimension along a given axis.

Definition at line 669 of file numpy.h.

References ndim(), and shape().

◆ size()

ssize_t size ( ) const
inline

Total number of elements.

Definition at line 639 of file numpy.h.

References ndim(), and shape().

◆ squeeze()

array squeeze ( )
inline

Return a new view with all of the dimensions of length 1 removed.

Definition at line 760 of file numpy.h.

◆ strides() [1/2]

const ssize_t* strides ( ) const
inline

Strides of the array.

Definition at line 676 of file numpy.h.

◆ strides() [2/2]

ssize_t strides ( ssize_t  dim) const
inline

Stride along a given axis.

Definition at line 681 of file numpy.h.

References ndim(), and strides().

◆ unchecked()

detail::unchecked_reference<T, Dims> unchecked ( ) const &
inline

Returns a proxy object that provides const access to the array's data without bounds or dimensionality checking. Unlike mutable_unchecked(), this does not require that the underlying array have the writable flag. Use with care: the array must not be destroyed or reshaped for the duration of the returned object, and the caller must take care not to access invalid dimensions or dimension indices.

Definition at line 752 of file numpy.h.

References data(), ndim(), shape(), and strides().

◆ writeable()

bool writeable ( ) const
inline

If set, the array is writeable (otherwise the buffer is read-only)

Definition at line 693 of file numpy.h.


The documentation for this class was generated from the following file: