मान लीजिए a
के सभी चक्रीय बदलावों के 2 डी सरणी n तत्वों के साथ कुछ 1d numppy.array
है:एक -1 डी सरणी
a = np.array([a_0, a_1, ..., a_n_minus_1])
मैं 2 डी जेनरेट करना चाहते हैं (एन एक्स एन) numpy.array
युक्त,
np.array([[a_0, a_1, ..., a_n_minus_1], [a_n_minus_1, a_0, a_1, ...], ...]])
: पंक्ति
मैं,
मैं
a
की वें चक्रीय बदलाव पर
अधिमानतः बिना लूप के। यह कुशलतापूर्वक कैसे किया जा सकता है?
(समारोह np.roll
संबंधित लगता है, लेकिन जाहिरा तौर पर ले जाता है केवल एक अदिश shift
।)
कुशलता से ऐसा करने के लिए चाल विकर्ण उपयोग करने के लिए है। उदाहरण के लिए, मुख्य विकर्ण सभी पहला तत्व होगा, आदि –
@ जोकिंगटन वे शांत, धन्यवाद! IIUC, आप इस तथ्य का उपयोग करना चाहते हैं कि एक चक्रीय बदलाव को रैखिक परिवर्तन के रूप में माना जा सकता है, हाँ? –
@ जोकिंगटन वास्तव में, यह बहुत अच्छा लगता है, लेकिन मैं इसे समझ नहीं सकता - अलग रैखिक परिवर्तन करने वाले मैट्रिस उत्पन्न करना बहुत महंगा होगा, नहीं? –