मैं यादृच्छिक मानों की numpy
सरणी बना रहा हूं और उन्हें 32-बिट फ्लोट वाले मौजूदा सरणी में जोड़ रहा हूं। मैं लक्ष्य सरणी के रूप में एक ही प्रकार का उपयोग करके यादृच्छिक मान उत्पन्न करना चाहता हूं, ताकि मुझे मैन्युअल रूप से dtypes को परिवर्तित करने की आवश्यकता न हो। वर्तमान में मैं ऐसा करते हैं:यादृच्छिक मूल्य उत्पन्न करते समय मैं एक numpy dtype निर्दिष्ट कर सकते हैं?
x += np.random.randn(*x.shape, dtype=x.dtype)
लेकिन randn
(और वास्तव में numpy.random
विधियों में से कोई नहीं) एक को स्वीकार नहीं करता:
import numpy as np
x = np.zeros((10, 10), dtype='f')
x += np.random.randn(*x.shape).astype('f')
मैं अंतिम पंक्ति के बजाय क्या करना चाहते हैं क्या की तरह कुछ है dtype
तर्क।
मेरा विशिष्ट प्रश्न यह है कि, जब मैं उन्हें बना देता हूं तो यादृच्छिक संख्याओं के लिए एक प्रकार टाइप करना संभव है, astype
पर कॉल किए बिना? (मेरा अनुमान है कि यादृच्छिक संख्या जनरेटर 64 बिट लंबा है, इसलिए यह वास्तव में ऐसा करने में कोई समझ नहीं आता है, लेकिन मैंने सोचा कि मैं पूछूंगा कि यह संभव है या नहीं।)
numpy स्वचालित रूप से आपके यादृच्छिक सरणी के प्रकार को 'x' के प्रकार में परिवर्तित कर देगा जब आप ऑपरेशन करते हैं, वहां' अस्थिर 'की बिल्कुल आवश्यकता नहीं होती है, बस' x + = np.random.randn करें (* x.shape) ', और अपने आप को देखें कि' x.dtype' नहीं बदलता है। – Jaime