31 Mart 2017 Cuma

python numpy ndarray Sınıfı

Giriş
Şu satırları dahil ederiz.
#include <boost/python.hpp>
#include <boost/python/numpy.hpp>

#include <iostream>

namespace bpy = boost::python;
namespace bnp = boost::python::numpy;
Bu sınıf boost::python::object sınıfından kalıtır.

Dinamik linklemek için şöyle yaparız.
-lboost_numpy
Static linklemek için şöyle yaparız.
#define BOOST_LIB_NAME "boost_numpy"
#include <boost/config/auto_link.hpp>
Açıklaması şöyle
That will automatically determine the appropriate library name for your build configuration (such as libboost_numpy-vc120-mt-1_63.lib) and jam in the appropriate #pragma in there to ask the linker to include the library automatically.

This code should probably have been included in boost/python/numpy.hpp and the omission may be a bug there.
constructor - boost::python::list
Şöyle yaparız.
vector<string> strings = {"a","aa","aaa","aaaa"};
bpy::list py_list;
for(auto& s: strings){
  py_list.append(s);
}
bnp::ndarray py_array = bnp::array(py_list);
constructor - tuple
Şöyle yaparız.
bpy::object tu = bpy::make_tuple('a', 'b', 'c');
bnp::ndarray const example_tuple = bnp::array(tu);
Diğer
initialize metodu
Bu metod aslında sınıfın bir parçası değil. Sınıfı kullanmadan önce şöyle yaparız.
bnp::initialize();

Hiç yorum yok:

Yorum Gönder