簡體   English   中英

使用C將numpy數組對象拆分為兩個不同大小的向量

[英]Split numpy array object into two different size vectors using C

我有

X作為輸入---這是dtype對象,具有以下結構x = [[1,2,3,4 ... n個元素],[1個元素],[1,2,... m個元素], [1個元素]

模仿輸入...

>>> from numpy import *
>>> x=array([array([1,2,3,4,5]),array([1]),array([1,2,3,4,5,6,7,8]),array([1])],dtype=object)
>>> x
array([[1 2 3 4 5], [1], [1 2 3 4 5 6 7 8], [1]], dtype=object)

我將X作為參數傳遞給我的Python C擴展作為PyArray_Object

static PyObject* samp(PyObject *self, PyObject *args) {

    PyArrayObject *array,*p1,*p2;
    int n,j;

    if (!PyArg_ParseTuple(args, "O!",&PyArray_Type, &array))
        return NULL;
    n=array->nd;

    if(n!=1 || array->descr->type_num!=PyArray_OBJECT) {
        PyErr_SetString(PyExc_ValueError, "array must be one-dimensional and of Object type");
        return NULL;
    }
    j=array->dimensions[0];
    /* ...... */
}

現在我被困在這里,因為我不確定如何將其拆分為4個對象。請任何人給我一些指導。

最初,您有四個數組的數組。 下一行將其提取到四個數組變量中:

a,b,c,d=x[0],x[1],x[2],x[3]

如果您需要本機Python對象而不是numpy數組,請使用列表推導:

objs = [y for y in a]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM