cppyabm  1.0.17
An agent-based library to integrate C++ and Python
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
array Class Reference

#include <numpy.h>

Inheritance diagram for array:
buffer object handle array_t< T, ExtraFlags > array_t< Scalar, array::forcecast|((props::row_major ? props::inner_stride :props::outer_stride)==1 ? array::c_style :(props::row_major ? props::outer_stride :props::inner_stride)==1 ? array::f_style :0)>

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 ()
 
 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_tshape () const
 Dimensions of the array. More...
 
ssize_t shape (ssize_t dim) const
 Dimension along a given axis. More...
 
const ssize_tstrides () 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)
 
- Public Member Functions inherited from buffer
buffer_info request (bool writable=false) const
 
- Public Member Functions inherited from object
 object ()=default
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
handle release ()
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
template<typename T >
cast () const &
 
template<typename T >
cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
- Public Member Functions inherited from handle
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
 handle (PyObject *ptr)
 Creates a handle from the given raw Python object pointer. More...
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 
const handleinc_ref () const &
 
const handledec_ref () const &
 
template<typename T >
cast () 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
 
template<>
void cast () const
 

Static Public Member Functions

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

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...
 

Friends

template<typename , typename >
struct detail::npy_format_descriptor
 

Additional Inherited Members

- Public Attributes inherited from object
bool is_borrowed: handle(h) { if (is_borrowed) inc_ref()
 
- Protected Attributes inherited from handle
PyObject * m_ptr = nullptr
 

Detailed Description

Definition at line 556 of file numpy.h.

Member Typedef Documentation

◆ ShapeContainer

using array::ShapeContainer = detail::any_container<ssize_t>

Definition at line 568 of file numpy.h.

◆ StridesContainer

using array::StridesContainer = detail::any_container<ssize_t>

Definition at line 569 of file numpy.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
c_style 
f_style 
forcecast 

Definition at line 560 of file numpy.h.

Constructor & Destructor Documentation

◆ array() [1/8]

array::array ( )
inline

Definition at line 566 of file numpy.h.

◆ array() [2/8]

array::array ( const pybind11::dtype &  dt,
ShapeContainer  shape,
StridesContainer  strides,
const void *  ptr = nullptr,
handle  base = handle() 
)
inline

Definition at line 572 of file numpy.h.

◆ array() [3/8]

array::array ( const pybind11::dtype &  dt,
ShapeContainer  shape,
const void *  ptr = nullptr,
handle  base = handle() 
)
inline

Definition at line 612 of file numpy.h.

◆ array() [4/8]

template<typename T , typename = detail::enable_if_t<std::is_integral<T>::value && !std::is_same<bool, T>::value>>
array::array ( const pybind11::dtype &  dt,
count,
const void *  ptr = nullptr,
handle  base = handle() 
)
inline

Definition at line 616 of file numpy.h.

◆ array() [5/8]

template<typename T >
array::array ( ShapeContainer  shape,
StridesContainer  strides,
const T *  ptr,
handle  base = handle() 
)
inline

Definition at line 620 of file numpy.h.

◆ array() [6/8]

template<typename T >
array::array ( ShapeContainer  shape,
const T *  ptr,
handle  base = handle() 
)
inline

Definition at line 624 of file numpy.h.

◆ array() [7/8]

template<typename T >
array::array ( ssize_t  count,
const T *  ptr,
handle  base = handle() 
)
inlineexplicit

Definition at line 628 of file numpy.h.

◆ array() [8/8]

array::array ( const buffer_info info,
handle  base = handle() 
)
inlineexplicit

Definition at line 630 of file numpy.h.

Member Function Documentation

◆ base()

object array::base ( ) const
inline

Base object.

Definition at line 659 of file numpy.h.

◆ byte_offset()

template<typename... Ix>
ssize_t array::byte_offset ( Ix...  index) const
inlineprotected

Definition at line 799 of file numpy.h.

◆ check_dimensions()

template<typename... Ix>
void array::check_dimensions ( Ix...  index) const
inlineprotected

Definition at line 809 of file numpy.h.

◆ check_dimensions_impl() [1/2]

template<typename... Ix>
void array::check_dimensions_impl ( ssize_t  axis,
const ssize_t shape,
ssize_t  i,
Ix...  index 
) const
inlineprotected

Definition at line 815 of file numpy.h.

◆ check_dimensions_impl() [2/2]

void array::check_dimensions_impl ( ssize_t  ,
const ssize_t  
) const
inlineprotected

Definition at line 813 of file numpy.h.

◆ check_writeable()

void array::check_writeable ( ) const
inlineprotected

Definition at line 804 of file numpy.h.

◆ data()

template<typename... Ix>
const void* array::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.

◆ dtype()

pybind11::dtype array::dtype ( ) const
inline

Array descriptor (dtype)

Definition at line 634 of file numpy.h.

◆ ensure()

static array 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.

◆ fail_dim_check()

void array::fail_dim_check ( ssize_t  dim,
const std::string &  msg 
) const
inlineprotected

Definition at line 794 of file numpy.h.

◆ flags()

int array::flags ( ) const
inline

Return the NumPy array flags.

Definition at line 688 of file numpy.h.

◆ index_at()

template<typename... Ix>
ssize_t array::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.

◆ itemsize()

ssize_t array::itemsize ( ) const
inline

Byte size of a single element.

Definition at line 644 of file numpy.h.

◆ mutable_data()

template<typename... Ix>
void* array::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.

◆ mutable_unchecked()

template<typename T , ssize_t Dims = -1>
detail::unchecked_mutable_reference<T, Dims> array::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.

◆ nbytes()

ssize_t array::nbytes ( ) const
inline

Total number of bytes.

Definition at line 649 of file numpy.h.

◆ ndim()

ssize_t array::ndim ( ) const
inline

Number of dimensions.

Definition at line 654 of file numpy.h.

◆ offset_at() [1/2]

ssize_t array::offset_at ( ) const
inline

Definition at line 724 of file numpy.h.

◆ offset_at() [2/2]

template<typename... Ix>
ssize_t array::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.

◆ owndata()

bool array::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.

◆ raw_array()

static PyObject* array::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.

◆ resize()

void array::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* array::shape ( ) const
inline

Dimensions of the array.

Definition at line 664 of file numpy.h.

◆ shape() [2/2]

ssize_t array::shape ( ssize_t  dim) const
inline

Dimension along a given axis.

Definition at line 669 of file numpy.h.

◆ size()

ssize_t array::size ( ) const
inline

Total number of elements.

Definition at line 639 of file numpy.h.

◆ squeeze()

array 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* array::strides ( ) const
inline

Strides of the array.

Definition at line 676 of file numpy.h.

◆ strides() [2/2]

ssize_t array::strides ( ssize_t  dim) const
inline

Stride along a given axis.

Definition at line 681 of file numpy.h.

◆ unchecked()

template<typename T , ssize_t Dims = -1>
detail::unchecked_reference<T, Dims> array::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.

◆ writeable()

bool array::writeable ( ) const
inline

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

Definition at line 693 of file numpy.h.

Friends And Related Function Documentation

◆ detail::npy_format_descriptor

template<typename , typename >
friend struct detail::npy_format_descriptor
friend

Definition at line 792 of file numpy.h.


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