संक्षिप्त उत्तर: आप नहीं कर सकते। NumPy जादुई सरणी का समर्थन नहीं करता है।
लांग जवाब:
>>> a = ones((3,))
>>> b = ones((2,))
>>> c = array([a, b])
>>> c
array([[ 1. 1. 1.], [ 1. 1.]], dtype=object)
एक सरणी कि या व्यवहार नहीं हो सकता कि आप उम्मीद कर सकते हैं के रूप में देता है। जैसे यह sum
या reshape
जैसी बुनियादी विधियों का समर्थन नहीं करता है, और आपको इसका इलाज करना चाहिए क्योंकि आप सामान्य पायथन सूची [a, b]
(वेक्टरकृत मुहावरों का उपयोग करने के बजाय संचालन करने के लिए इसे फिर से चालू करते हैं) का इलाज करना चाहिए।
कई संभावित कामकाज मौजूद हैं; a
और b
को सामान्य लंबाई में masked arrays या NaN का उपयोग करके सबसे आसान है कि कुछ सूचकांक कुछ पंक्तियों में अमान्य हैं। जैसे यहाँ एक नकाबपोश सरणी के रूप में b
है:
इस प्रकार
>>> ma.array(np.resize(b, a.shape[0]), mask=[False, False, True])
masked_array(data = [1.0 1.0 --],
mask = [False False True],
fill_value = 1e+20)
यह a
साथ खड़ी जा सकता है:
>>> ma.vstack([a, ma.array(np.resize(b, a.shape[0]), mask=[False, False, True])])
masked_array(data =
[[1.0 1.0 1.0]
[1.0 1.0 --]],
mask =
[[False False False]
[False False True]],
fill_value = 1e+20)
(कुछ प्रयोजनों के लिए, scipy.sparse
भी दिलचस्प हो सकता है।)
स्रोत
2013-02-16 23:48:15
larsmans 'समाधान के लिए जोड़ने के लिए, अपने "दांतेदार" सरणियों का सबसे बड़ा लगता है (इस मामले
np.nan
में) एक शून्य मान के साथ मैट्रिक्स में खाली स्थान भरने की जरूरत है, तो आप इस्तेमाल कर सकते हैं ' max_entries = अधिकतम ([l, (x) x में [ए, बी]]) ', और स्वचालित रूप से मास्क उत्पन्न करने के लिए,' np.concatenate ([np.zeros (len (b), dtype = bool), np का उपयोग करें .ones (max_entries-len (बी), dtype = बूल)]) '। –निश्चित रूप से एक रास्ता होना चाहिए! यदि numpy में एक 1 आयामी सरणी ऑब्जेक्ट पॉइंटर्स को अन्य बहुआयामी सरणी में संग्रहीत कर रही है, तो बहुआयामी सरणी क्यों समान होनी चाहिए? पक्का नहीं? मदद की सराहना की। – CodeCabbie