2011-07-25 6 views
5

मैं सी/सी ++ में एक numpy सरणी के लिए संख्या आवंटित करना चाहता हूं, और उन्हें एक पायदान के रूप में पाइथन में पास करना चाहता हूं। मैं PyArray_SimpleNewFromData के साथ कर सकता हूं।सी-आवंटित numpy सरणी के लिए एक विनाशक कैसे रजिस्टर करें?

समस्या यह है कि मैं एक फ़ंक्शन को भी पंजीकृत करना चाहता हूं जिसे पायथन से बुलाया जाना चाहिए जब numpy सरणी संदर्भ काउंटर शून्य तक पहुंचता है, और वह सी पक्ष पर कुछ विनाशक अर्थशास्त्र का आह्वान करेगा ... यहां एक छद्म उदाहरण है मुझे क्या चाहिए:

float* arr; PyObject* np_arr; void (*destructor)(float* arr); 
// ... C-allocate array on arr, ... 
// ... 
// ... initialize destructor with some suitable value, and then: 
np_arr = /* ... create the array to wrap arr, 
      and to use destructor on some meaningful way ... */ 

ऐसा करने का एक आसान तरीका है?

उत्तर

1

वहाँ इस तरह के रूप एक आसान तरीका नहीं है, लेकिन मुझे लगता है कि इस URL अपने प्रश्न

http://blog.enthought.com/python/numpy-arrays-with-pre-allocated-memory/

+0

हम्म, वास्तव में जटिल जवाब देंगे, लेकिन वह यह नहीं होगा। धन्यवाद! – dsign

संबंधित मुद्दे