एक छोटी सी बदसूरत, लेकिन यहाँ छोटा सा उदाहरण है कि आप पूर्ण आकार एक के लिए संशोधित करने के लिए सक्षम होना चाहिए के लिए एक एक लाइनर है:
In [29]: from itertools import chain
In [30]: np.array(list(chain(*[np.arange(20).reshape(4,5)[i::2] for i in xrange(2)])))
Out[30]:
array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[ 5, 6, 7, 8, 9],
[15, 16, 17, 18, 19]])
संपादित करें: यहां एक फ़ंक्शन में एक अधिक सामान्यीकृत संस्करण है। उलझन कोड, लेकिन फ़ंक्शन बस एक सरणी लेता है और कई सेगमेंट जिन्हें आप समाप्त करना चाहते हैं।
In [57]: def break_arr(arr, chunks):
....: to_take = arr.shape[1]/chunks
....: return np.array(list(chain(*[arr.take(xrange(x*to_take, x*to_take+to_take), axis=1) for x in xrange(chunks)])))
....:
In [58]: arr = np.arange(40).reshape(4,10)
In [59]: break_arr(arr, 5)
Out[59]:
array([[ 0, 1],
[10, 11],
[20, 21],
[30, 31],
[ 2, 3],
[12, 13],
[22, 23],
[32, 33],
[ 4, 5],
[14, 15],
[24, 25],
[34, 35],
[ 6, 7],
[16, 17],
[26, 27],
[36, 37],
[ 8, 9],
[18, 19],
[28, 29],
[38, 39]])
In [60]: break_arr(arr, 2)
Out[60]:
array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[20, 21, 22, 23, 24],
[30, 31, 32, 33, 34],
[ 5, 6, 7, 8, 9],
[15, 16, 17, 18, 19],
[25, 26, 27, 28, 29],
[35, 36, 37, 38, 39]])
'43264 = 208 * 208' के बाद से आप अपनी सरणी को '26 * 208 * 208' के आकार में दोबारा बदल सकते हैं लेकिन' 208 * 208 * 26 * 26' – toine
नहीं, क्या आप बस' np.reshape (सूची 'की तलाश में हैं , (4,5)) '? – SirParselot
बस np.reshape (सूची, (4,5)) काम नहीं करता है क्योंकि यह डेटा को गलत तरीके से विभाजित करता है। – Chidwack