2008-10-18 17 views
8

bir numpy rekor dizi oluşturmak için, ben yeni numpy rekor diziler oluşturabilirim? Sanırım PyArray_SimpleNewFromDescr(nd, dims, descr) numaralı telefonu aramak zorundayım, ancak 'u, üçüncü bağımsız değişken olarak PyArray_SimpleNewFromDescr'a geçmek için uygun bir şekilde nasıl oluşturabilirim?nasıl Python tarafında C

cevap

10

PyArray_DescrConverter'u kullanın. İşte bir örnek: Guide to NumPy Bölüm 13.3.10 işaret için Adam Rosenfield için

#include <Python.h> 
#include <stdio.h> 
#include <numpy/arrayobject.h> 

int main(int argc, char *argv[]) 
{ 
    int dims[] = { 2, 3 }; 
    PyObject *op, *array; 
    PyArray_Descr *descr; 

    Py_Initialize(); 
    import_array(); 
    op = Py_BuildValue("[(s, s), (s, s)]", "a", "i4", "b", "U5"); 
    PyArray_DescrConverter(op, &descr); 
    Py_DECREF(op); 
    array = PyArray_SimpleNewFromDescr(2, dims, descr); 
    PyObject_Print(array, stdout, 0); 
    printf("\n"); 
    Py_DECREF(array); 
    return 0; 
} 

teşekkürler.

5

Guide to NumPy, bölüm 13.3.10 bölümüne bakın. [('a', 'i4'), ('b', 'U5')]'u yazmak kadar kolay olmasa da, bir tanımlayıcı yapmak için birçok farklı yol var.

+0

Teşekkürler, Kılavuz, PyArray_DescrConverter' işlevini kullandı. Bir yoruma uymadığı için ayrı bir yanıt olarak bir örnek yayınladım. –

+0

Bu bağlantı benim için çalışmıyor. Herkesin güncel bir bağlantısı var mı? –

+0

@JoelVroom: Orijinal bağlantıya ne olduğunu bilmiyorum, ancak aynı belgeye kolayca başka bir bağlantı bulabildim. –

İlgili konular