दिलचस्प पोस्ट
कई जारों को संयोजित करने का साफ तरीका है? प्राथमिकता का उपयोग कर चींटी AJAX और jQuery का उपयोग करते हुए फॉर्म सबमिट करें सी ++ 11: सही std :: array initialization? वसंत – @ लेनदेन – पृष्ठभूमि में क्या होता है? फ़ोकस चोरी किए बिना एक फॉर्म दिखाएं? jQuery के साथ लाइन-ब्रेक का पता लगा रहा है? पेरू के इमटेटेबल लिस्ट में इतने सारे भार () तरीके क्यों हैं? अजगर में, फ़ाइल नाम आयात कैसे करें, किसी संख्या के साथ शुरू होता है जावा में हैश फ़ंक्शन लिखने का सर्वोत्तम अभ्यास क्या है? मैन्युअल रूप से कार्यान्वित गुणों पर स्वत: कार्यान्वित गुणों का उपयोग करने का कोई कारण? एलडी, सीआर, और सीआरएलएफ को संभालने के लिए std :: ifstream प्राप्त करना? रेल: फ़ील्ड_ सूचकांक के लिए? C / C ++ में नल सूचक के लिए जांचना जावा सुरक्षा संवाद का प्रकटन LocalBroadcastManager का उपयोग कैसे करें?

एक numpy array पर देखें?

मेरे पास एक 2 डी numpy सरणी है क्या उस पर एक दृश्य बनाने का कोई तरीका है जिसमें पहले की पंक्तियों और सभी स्तंभ शामिल होंगे?

बिंदु अंतर्निहित डेटा की नकल से बचने के लिए है (सरणी इतनी बड़ी है कि आंशिक प्रतियां बनाना संभव नहीं है।)

वेब के समाधान से एकत्रित समाधान "एक numpy array पर देखें?"

बेशक, बस इंडेक्स के रूप में आप सामान्य रूप से होगा। उदाहरण y = x[:k, :] यह मूल दृश्य में एक दृश्य वापस करेगा। कोई डेटा कॉपी नहीं किया जाएगा, और y किए गए किसी भी अपडेट को x और इसके विपरीत दिखाई देगा।


संपादित करें:

मैं आमतौर पर> यूआईटी 8 के 10 जीबी 3 डी सरणियों के साथ काम करता हूं, इसलिए मैं इस बारे में बहुत चिंतित हूं … मेमोरी प्रबंधन में नम्पी बहुत कुशल हो सकता है अगर आप कुछ चीजें ध्यान में रखते हैं। स्मृति में सरणियों की प्रतियां बनाने से बचने के कुछ उपाय यहां दिए गए हैं:

सरणी की प्रतिलिपि बनाने से बचने के लिए += , -= , *= , आदि का उपयोग करें। उदाहरण x += 10 जगह में सरणी को संशोधित करेगा, जबकि x = x + 10 प्रतिलिपि बनाकर उसे संशोधित करेगा। (यहां तक ​​कि एक नक्स एक्सस्प भी देखें )

यदि आप x = x + 10 साथ एक प्रतिलिपि बनाना चाहते हैं, तो ध्यान रखें कि x = x + 10.0 x को स्वचालित रूप से एक फ्लोटिंग प्वाइंट एरे से ऊपर-जाली में डाल दिया जाएगा, अगर वह पहले से ही नहीं था हालांकि, x += 10.0 , जहां x एक पूर्णांक सरणी है, 10.0 को सरणी के रूप में एक ही सटीक के अंत में डाली जाएगी, बजाय

इसके अतिरिक्त, कई numpy फ़ंक्शंस एक out पैरामीटर लेते हैं, ताकि आप np.abs(x, x) जैसी चीजें कर सकें, जो x -प्लेस के निरपेक्ष मान ले सकते हैं।


दूसरी संपादन के रूप में, यहां कुछ और विचारों पर युक्तियां बनायीं हैं- नकली एरेज़ के साथ प्रतियां:

अजगर सूचियों के विपरीत, y = x[:] एक प्रति वापस नहीं लौटाता है, यह एक दृश्य देता है यदि आप एक प्रति चाहते हैं (जो निश्चित रूप से, आपके द्वारा उपयोग की जा रही स्मृति की मात्रा दोगुनी होगी) y = x.copy() उपयोग करें

आप अक्सर numpy arrays के "फैंसी अनुक्रमणिका" के बारे में सुनाएंगे एक सूची के रूप में एक सूची (या पूर्णांक सरणी) का उपयोग करना "फैंसी इंडेक्सिंग" है यह बहुत उपयोगी हो सकता है, लेकिन डेटा की प्रतियां

इस का एक उदाहरण के रूप में: y = x[[0, 1, 2], :] एक प्रति देता है, जबकि y = x[:3,:] एक दृश्य वापस आ जाएगा

यहां तक ​​कि वास्तव में पागल इंडेक्सिंग x[4:100:5, :-10:-1, None] "सामान्य" इंडेक्सिंग है और एक दृश्य वापस आ जाएगी, हालांकि, इतने बड़े पैमाने पर सभी तरह के टुकड़े टुकड़े करने के लिए उपयोग करने में डर नहींें सरणियों।

x.astype(<dtype>) नए प्रकार के रूप में डेटा की प्रतिलिपि वापस करेगा, जबकि x.view(<dtype>) एक दृश्य वापस करेगा।

इस के साथ सावधान रहें, हालांकि … यह अत्यंत शक्तिशाली और उपयोगी है, लेकिन आपको यह समझने की ज़रूरत है कि कैसे अंतर्निहित डेटा को स्मृति में संग्रहीत किया जाता है यदि आपके पास फ्लोट की एक सरणी है, और उन्हें ints के रूप में देखें, (या इसके विपरीत) numpy asts के रूप में सरणी के अंतर्निहित बिट्स की व्याख्या करेगा।

उदाहरण के लिए, इसका मतलब है कि 1.0 बिट-एंडियन सिस्टम पर एक 64 बिट फ्लोट के रूप में 4607182418800017408 होगा, जब इसे 64 बिट इंट के रूप में देखा जाएगा, और [ 0, 0, 0, 0, 0, 0, 240, 63] की एक सरणी अगर देखा जाए एक यूआईटी 8 के रूप में यह वाकई बहुत अच्छा है जब बड़े सरणियों पर कुछ प्रकार की थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी मोड़ो की ज़रूरत होती है, हालांकि … आपके पास मेमोरी बफर का व्याख्या कैसे किया जाता है, इस पर कम स्तर पर नियंत्रण है