Re: [Numpy-discussion] Extending C with Python
With PyObject_CallMethod(pInstance, method_name, "O", py_dims); Can I pass in a reference and modify its content in python? Best, Jialin On Sat, Feb 3, 2018 at 10:29 AM, Jialin Liu <jaln...@lbl.gov> wrote: > Thank you guys. > > Best, > Jialin > > Sent from my iPhone > > On Feb 3, 2018, at 8:11 AM, Sylvain Corlay <sylvain.cor...@gmail.com> > wrote: > > You can also check out pybind11, xtensor, and xtensor-python > > The latter enables a high-level numpy-like API on the C++ side. > > You can check out the numpy to xtensor cheat sheet: > > http://xtensor.readthedocs.io/en/latest/numpy.html > > Best, > > Sylvain > > > On Thu, Feb 1, 2018 at 12:11 AM, Stefan Seefeld <ste...@seefeld.name> > wrote: > >> On 31.01.2018 17:58, Chris Barker wrote: >> >> I'm guessing you could use Cython to make this easier. >> >> >> ... or Boost.Python (http://boostorg.github.io/python), which has >> built-in support for NumPy (http://boostorg.github.io/pyt >> hon/doc/html/numpy/index.html), and supports both directions: extending >> Python with C++, as well as embedding Python into C++ applications. >> >> >> >> >> -- >> >> ...ich hab' noch einen Koffer in Berlin... >> >> >> >> ___ >> NumPy-Discussion mailing list >> NumPy-Discussion@python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> >> > ___ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > > ___ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Extending C with Python
Thank you guys. Best, Jialin Sent from my iPhone > On Feb 3, 2018, at 8:11 AM, Sylvain Corlaywrote: > > You can also check out pybind11, xtensor, and xtensor-python > > The latter enables a high-level numpy-like API on the C++ side. > > You can check out the numpy to xtensor cheat sheet: > > http://xtensor.readthedocs.io/en/latest/numpy.html > > Best, > > Sylvain > > >> On Thu, Feb 1, 2018 at 12:11 AM, Stefan Seefeld wrote: >>> On 31.01.2018 17:58, Chris Barker wrote: >>> I'm guessing you could use Cython to make this easier. >> >> ... or Boost.Python (http://boostorg.github.io/python), which has built-in >> support for NumPy >> (http://boostorg.github.io/python/doc/html/numpy/index.html), and supports >> both directions: extending Python with C++, as well as embedding Python into >> C++ applications. >> >> >> >> -- >> >> ...ich hab' noch einen Koffer in Berlin... >> >> >> ___ >> NumPy-Discussion mailing list >> NumPy-Discussion@python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > > ___ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion ___ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Extending C with Python
Amazing! It works! Thank you Robert. I've been stuck with this many days. Best, Jialin LBNL/NERSC On Tue, Jan 30, 2018 at 10:52 PM, Robert Kern <robert.k...@gmail.com> wrote: > On Wed, Jan 31, 2018 at 3:25 PM, Jialin Liu <jaln...@lbl.gov> wrote: > >> Hello, >> I'm extending C with python (which is opposite way of what people usually >> do, extending python with C), I'm currently stuck in passing a C array to >> python layer, could anyone plz advise? >> >> I have a C buffer in my C code and want to pass it to a python function. >> In the C code, I have: >> >> npy_intp dims [2]; >>> dims[0] = 10; >>> dims[1] = 20; >>> import_array(); >>> npy_intp m=2; >>> PyObject * py_dims = PyArray_SimpleNewFromData(1, , NPY_INT16 ,(void >>> *)dims ); // I also tried NPY_INT >>> PyObject_CallMethod(pInstance, method_name, "O", py_dims); >> >> >> In the Python code, I want to just print that array: >> >> def f(self, dims): >> >>print ("np array:%d,%d"%(dims[0],dims[1])) >> >> >> >> But it only prints the first number correctly, i.e., dims[0]. The second >> number is always 0. >> > > The correct typecode would be NPY_INTP. > > -- > Robert Kern > > ___ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > > ___ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
[Numpy-discussion] Extending C with Python
Hello, I'm extending C with python (which is opposite way of what people usually do, extending python with C), I'm currently stuck in passing a C array to python layer, could anyone plz advise? I have a C buffer in my C code and want to pass it to a python function. In the C code, I have: npy_intp dims [2]; > dims[0] = 10; > dims[1] = 20; > import_array(); > npy_intp m=2; > PyObject * py_dims = PyArray_SimpleNewFromData(1, , NPY_INT16 ,(void > *)dims ); // I also tried NPY_INT > PyObject_CallMethod(pInstance, method_name, "O", py_dims); In the Python code, I want to just print that array: def f(self, dims): print ("np array:%d,%d"%(dims[0],dims[1])) But it only prints the first number correctly, i.e., dims[0]. The second number is always 0. Best, Jialin LBNL/NERSC ___ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion