के साथ साइथन में एक अंडारे घोषित करने के लिए कैसे करें यदि यह फ्लोट और डबल दोनों को संभालने में सक्षम होना चाहिए तो साइथन में एक numpy सरणी घोषित करने का सबसे अच्छा तरीका क्या है?एक सामान्य फ्लोटिंग पॉइंट प्रकार
मुझे लगता है कि डेटाटाइप महत्वपूर्ण है क्योंकि मेमोरी व्यू के साथ यह संभव नहीं होगा, लेकिन एक अंडारे के लिए यह एक सामान्य फ्लोट प्रकार देने का कोई तरीका है जो अभी भी साइथन की तेज़ी से लाभान्वित होगा?
def F(np.ndarray A):
A += 10
मैंने देखा है वहाँ भी है कि:
def F(np.ndarray[np.float32_t, ndim=2] A):
A += 10
लेकिन वह फिर प्रकार के लिए एक सा आकार दे देंगे
तो यह है कि मैं क्या आमतौर पर ऐसा होता है। मैंने बिट आकार (32 या 64) के आधार पर फ़ंक्शन के अंदर मेमोरी व्यू बनाने की लाइनों के साथ भी सोचा है।
किसी भी सोचा था कि अत्यधिक सराहना कर रहे हैं
आप floating
प्रकार पर टिप के लिए बहुत बहुत धन्यवाद। मैं इसे इस
import numpy as np
cimport numpy as np
import cython
cimport cython
from libc.math cimport sqrt, abs
from cython cimport floating
@cython.boundscheck(False)
@cython.wraparound(False)
@cython.nonecheck(False)
def Rot_Matrix(np.ndarray[floating, ndim=3] Fit_X,
np.ndarray[floating, ndim=3] Ref_X,
weight = None):
cdef:
unsigned int t, T = Fit_X.shape[0]
unsigned int n, N = Fit_X.shape[1]
np.ndarray[floating, ndim=3] Rot = np.empty((T,3,3))
return Rot
तरह की कोशिश की है जब मैं अब np.float32 मैं त्रुटि मिलती है के दो सरणियों के साथ फ़ंक्शन को कॉल
ValueError: Buffer dtype mismatch, expected 'float' but got 'double'
मैं ब्रेक में प्रकार परिभाषा का उपयोग नहीं करते Rot
के लिए तो यह np.ndarray[floating, ndim=3] Rot = np.empty((T,3,3))
पढ़ता है तो मुझे वापस ndarray मिलता है और यह ठीक काम करता है। क्या आपके पास एक संकेतक होगा जो मैं गलत कर रहा हूं?
This goes inside your code.
from cython cimport floating
def cythonfloating_memoryview(floating[:, :] array):
cdef int i, j
for i in range(array.shape[0]):
for j in range(array.shape[1]):
array[i, j] += 10
बेशक
, वहाँ इस करने के तरीके का भार हैं::
मुझे संदेह है कि आप देशी आकारों के मूल प्रकारों को मिश्रित कर सकते हैं, यह प्रदर्शन को उड़ा देगा। – CoDEmanX
तो क्या आप इसे पहले उदाहरण में करते हुए छोड़ देंगे? क्या यह आयामों की संख्या घोषित करने में मदद करेगा? – Magellan88
@ Magellan88 मैंने अभी आपके पोस्ट में अपडेट देखा है। मैंने अपनी प्रतिक्रिया अपडेट की है। – Veedrac