Thank you Sebastian. I discovered also that the problem could be solved using the global numpy.reshape.
That function, does not complain if the last parameter is simply "F" and not "storage=F". Anyway the issue is still open. If anyone knows it, is it possible to explicitly specify a named parameter through a call to "attr" ? 2009/10/28 Sebastian Walter <wal...@mathematik.hu-berlin.de>: > >> Hello to everyone. >> >> I have this problem. >> >> Assume I'm building a to-Python converter for a 3x2 matrix type, >> FORTRAN storage (these are not the real dimensions of my problem, but >> I give these numbers only to simplify the discussion). >> >> Into the "convert" C++ method, first, I build a list with all the >> matrix elements (lout); >> then, I instantiate a boost::python::numeric::array in this way (note: >> I had previously used >> set_module_and_type("numpy","ndarray"), for using the NumPy's array): >> >> boost::python::numeric::array v(lout) >> >> Finally, I'd like to call "reshape" on this array, in this way >> >> v.attr("reshape")(make_tuple(3,2),"F"); > > don't know the answer to your question, but you could do the following: > > set the strides of the underlying PyArrayObject manually to match column > major format, i.e. > PyArrayObject *v_array_obj = reinterpret_cast<PyArrayObject*> ( v.ptr() ); > v_array_obj->strides[0] = sizeof(double); > v_array_obj->strides[1] = 3 * sizeof(double); > > hope that helps, > > Sebastian > > >> >> But it does not work. It builds, but, on runtime, I obtain the error: >> >> Traceback (most recent call last): >> File "<stdin>", line 1, in ? >> TypeError: an integer is required >> >> I tried to build and re-shape a matrix entirely from Python and I >> discovered that, when using reshape, >> you are forced to give the second parameter as >> >> order = 'C' or 'F' >> >> Now the question is: is it possible to specify a named parameter from >> the C++ code ? >> If the answer is "yes", how ? >> >> Thank you in advance, >> Michele >> >> -- >> Michele De Stefano >> http://www.linkedin.com/in/micdestefano >> _______________________________________________ >> Cplusplus-sig mailing list >> Cplusplus-sig@python.org >> http://mail.python.org/mailman/listinfo/cplusplus-sig >> > > > -- > Sebastian Walter > > Institut fuer Mathematik, Humboldt-Universitaet Tel: +49 (30) 2093-5869 > Rudower Chaussee 25, Adlershof, Berlin Fax: +49 (30) 2093-5859 > Post: Unter den Linden 6, D-10099 Berlin Email: > wal...@mathematik.hu-berlin.de > WWW: http://www.mathematik.hu-berlin.de/~walter > > _______________________________________________ > Cplusplus-sig mailing list > Cplusplus-sig@python.org > http://mail.python.org/mailman/listinfo/cplusplus-sig > -- Michele De Stefano http://www.linkedin.com/in/micdestefano http://xoomer.virgilio.it/michele_de_stefano _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig