Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

boost/python/numeric.hpp

Boost , Boost.Python Reference Manual , Chapter 3. Object Wrappers

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Обсуждение ATypeWrapperдля Pythonarraytype.

Обеспечивает доступ к типам массивовNumerical Python'sЧисленностьиNumArrayМодуль. За исключением функций, описанных ниже, семантика конструкторов и функций-членов, описанных ниже, может быть полностью понята при чтении определения концепцииTypeWrapper. Поскольку массив является общедоступным производным от объекта, интерфейс публичного объекта также применяется к экземплярам массива.

По умолчанию поведение заключается в использовании числительного. NDArray как связанный тип Python, если модуль numarray установлен в месте по умолчанию. В противном случае он возвращается к использованию числа. ArrayType. Если ни один модуль расширения не установлен, перегрузки обернутых функций C++ с числовыми параметрами::array никогда не будут сопоставлены, а другие попытки использования числового::array вызовут соответствующее исключение Python. Соответствующий тип Python может быть установлен вручную с помощью статической функции set_module_and_type(...).

namespace boost { namespace python { namespace numeric
{
   class array : public object
   {
    public:
      object astype();
      template <class Type>
      object astype(Type const& type_);
      template <class Type>
      array new_(Type const& type_) const;
      template <class Sequence>
      void resize(Sequence const& x);
      void resize(long x1);
      void resize(long x1, long x2);
      ...
      void resize(long x1, long x2,...long xn);
      template <class Sequence>
      void setshape(Sequence const& x);
      void setshape(long x1);
      void setshape(long x1, long x2);
      ...
      void setshape(long x1, long x2,...long xn);
      template <class Indices, class Values>
      void put(Indices const& indices, Values const& values);
      template <class Sequence>
      object take(Sequence const& sequence, long axis = 0);
      template <class File>
      void tofile(File const& f) const;
      object factory();
      template <class Sequence>
      object factory(Sequence const&);
      template <class Sequence, class Typecode>
      object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
      template <class Sequence, class Typecode, class Type>
      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
      template <class Sequence, class Typecode, class Type, class Shape>
      object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);
      template <class T1>
      explicit array(T1 const& x1);
      template <class T1, class T2>
      explicit array(T1 const& x1, T2 const& x2);
      ...
      template <class T1, class T2,...class Tn>
      explicit array(T1 const& x1, T2 const& x2,...Tn const& xn);
      static void set_module_and_type();
      static void set_module_and_type(char const* package_path = 0, char const* type_name = 0);
      static void get_module_name();
      object argmax(long axis=-1);
      object argmin(long axis=-1);
      object argsort(long axis=-1);
      void byteswap();
      object copy() const;
      object diagonal(long offset = 0, long axis1 = 0, long axis2 = 1) const;
      void info() const;
      bool is_c_array() const;
      bool isbyteswapped() const;
      void sort();
      object trace(long offset = 0, long axis1 = 0, long axis2 = 1) const;
      object type() const;
      char typecode() const;
      object getflat() const;
      long getrank() const;
      object getshape() const;
      bool isaligned() const;
      bool iscontiguous() const;
      long itemsize() const;
      long nelements() const;
      object nonzero() const;
      void ravel();
      object repeat(object const& repeats, long axis=0);
      void setflat(object const& flat);
      void swapaxes(long axis1, long axis2);
      str tostring() const;
      void transpose(object const& axes = object());
      object view() const;
  };
}}}
object factory();
template <class Sequence>
object factory(Sequence const&);
template <class Sequence, class Typecode>
object factory(Sequence const&, Typecode const&, bool copy = true, bool savespace = false);
template <class Sequence, class Typecode, class Type>
object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&);
template <class Sequence, class Typecode, class Type, class Shape>
object factory(Sequence const&, Typecode const&, bool copy, bool savespace, Type const&, Shape const&);

Эти функции отображаются в семействе функций массива() базового типа массива. Они не называются «массивными» из-за ограничения C++, что вы не можете определить функцию-члена с тем же названием, что и его класс.

template <class Type>
array new_(Type const&) const;

Эта функция отображает новую () функцию базового типа массива. Он не называется «новым», потому что это ключевое слово в C++.

static void set_module_and_type(char const* package_path, char const* type_name);
static void set_module_and_type();

Requires

Package_path и Type_name, если они поставляются, являютсяntbs.

Effects

Первая форма устанавливает путь пакета модуля, который поставляет тип, называемый type_name, в пакет_path. Вторая форма восстанавливает поведение поиска по умолчанию. Связанный тип Python будет искаться только в первый раз, когда это необходимо, а затем в первый раз после вызова set_module_and_type.

static std::string get_module_name()

Effects

Возвращает название модуля, содержащего класс, который будет удерживаться новыми<numeric::array>экземплярами.

#include <boost/python/numeric.hpp>
#include <boost/python/tuple.hpp>
// sets the first element in a 2d numeric array
void set_first_element(numeric::array& y, double value)
{
    y[make_tuple(0,0)] = value;
}

PrevUpHomeNext

Статья boost/python/numeric.hpp раздела Boost.Python Reference Manual Chapter 3. Object Wrappers может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 3. Object Wrappers ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:39:26/0.029117107391357/1