আমি একটি NumPy nxn অ্যারে টুকরা করতে চাই। আমি একটি নির্বিচারে নিষ্কাশন করতে চান অ্যারের এম সারি এবং কলামগুলির সংগ্রহটি (অর্থাত সারি / কলামগুলির সংখ্যায় কোনও বিন্যাস ছাড়াই), এটি একটি নতুন, এমএক্সএম অ্যারে তৈরি করে। এই উদাহরণের জন্য আসুন আমরা অ্যারেটি 4x4 বলে থাকি এবং আমি এটি থেকে 2x2 অ্যারেটি বের করতে চাই।
আমাদের অ্যারে এখানে:
from numpy import *
x = range(16)
x = reshape(x,(4,4))
print x
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
সরানোর জন্য লাইন এবং কলামগুলি একই। সবচেয়ে সহজ কেসটি যখন আমি 2x2 সাবমেট্রিক্সটি শুরু করতে বা শেষে দেখতে পারি, অর্থাত:
In [33]: x[0:2,0:2]
Out[33]:
array([[0, 1],
[4, 5]])
In [34]: x[2:,2:]
Out[34]:
array([[10, 11],
[14, 15]])
তবে আমার কী সারি / কলামগুলির অন্য মিশ্রণটি সরিয়ে ফেলতে হবে? আমার যদি প্রথম এবং তৃতীয় লাইন / সারিগুলি সরানোর প্রয়োজন হয়, এভাবে সাবম্যাট্রিক্সটি বের করা যায় [[5,7],[13,15]]
? সারি / রেখার যে কোনও রচনা থাকতে পারে। আমি কোথাও পড়েছি যে সারি এবং কলাম উভয়ের জন্য সূচি তালিকাগুলির অ্যারে / তালিকা ব্যবহার করে আমার কেবল অ্যারে সূচী করা দরকার, তবে এটি কার্যকর বলে মনে হচ্ছে না:
In [35]: x[[1,3],[1,3]]
Out[35]: array([ 5, 15])
আমি একটি উপায় পেয়েছি, যা:
In [61]: x[[1,3]][:,[1,3]]
Out[61]:
array([[ 5, 7],
[13, 15]])
এটির সাথে প্রথম বিষয়টি হ'ল এটি খুব কমই পঠনযোগ্য, যদিও আমি এটির সাথে থাকতে পারি। কারও যদি এর থেকে আরও ভাল সমাধান হয় তবে আমি অবশ্যই এটি শুনতে চাই।
অন্য জিনিসটি আমি একটি ফোরামে পড়েছি যে অ্যারেগুলির সাথে অ্যারেগুলি সূচনা করা NumPy কে পছন্দসই অ্যারের একটি অনুলিপি তৈরি করতে বাধ্য করে, সুতরাং বড় অ্যারেগুলির সাথে চিকিত্সা করার সময় এটি একটি সমস্যা হতে পারে। কেন / কেন এই প্রক্রিয়াটি কাজ করে?