2011-11-08 9 views
7

क्या कोई सरणी पर रोल करने का कोई तरीका है, लेकिन डेटा की प्रतिलिपि रखने के बजाय इसके बारे में एक अलग विज़ुअलाइजेशन है?Numpy: numpy.roll के समतुल्य लेकिन केवल डेटा विज़ुअलाइज़ेशन के लिए

एक उदाहरण स्पष्ट हो सकता है: b दिया a की एक लुढ़का संस्करण ...

>>> a = np.random.randint(0, 10, (3, 3)) 
>>> a 
array([[6, 7, 4], 
     [5, 4, 8], 
     [1, 3, 4]]) 
>>> b = np.roll(a, 1, axis=0) 
>>> b 
array([[1, 3, 4], 
     [6, 7, 4], 
     [5, 4, 8]]) 

... अगर मैं सरणी b पर एक काम के लिए प्रदर्शन ...

>>> b[2,2] = 99 
>>> b 
array([[ 1, 3, 4], 
     [ 6, 7, 4], 
     [ 5, 4, 99]]) 

.. a की सामग्री बदलेगी नहीं ...

>>> a 
array([[6, 7, 4], 
     [5, 4, 8], 
     [1, 3, 4]]) 

... इसके विपरीत, मैं करना चाहते हैं: अपना समय और विशेषज्ञता के लिए अग्रिम में

>>> a 
array([[6, 7, 4], 
     [5, 4, 99], # observe as `8` has been changed here too! 
     [1, 3, 4]]) 

धन्यवाद!

उत्तर

9

यह संभव नहीं है, क्षमा करें। लुढ़का हुआ सरणी strides के एक अलग सेट द्वारा वर्णित नहीं किया जा सकता है, जो काम करने के लिए न्यूमपी दृश्य के लिए आवश्यक होगा।

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