با سلام و احترام
ضمیمه 148503
1- آیا میشود sort جوری باشد که هر درایه به ترتیب از چپ به راست از کوچک به بزرگ مرتب شوند
یعنی شود
1 2
32 33
باتشکر
Printable View
با سلام و احترام
ضمیمه 148503
1- آیا میشود sort جوری باشد که هر درایه به ترتیب از چپ به راست از کوچک به بزرگ مرتب شوند
یعنی شود
1 2
32 33
باتشکر
سلام دوست عزیز.
بله، میشه اینکارو کرد. ولی علاوه بر Sort باید از reshape هم استفاده بشه.
ببینید، ما میتونیم با تعیین axis آرایه رو در جهت سطرها یا ستونها مرتب کنیم. مثلا axis=0 باعث میشه تا المنتهای آرایه فقط در محور ستون مرتب بشن. یعنی از بالا به پایین و از پایین به بالا. مثال:میبینید که عدد 0 اومده بالا، ولی به سمت چپ نرفته.
اگر از axis=1 استفاده کنیم، 0 در سطر پایین میمونه، ولی میره به سمت چپ. یعنی مرتبسازی فقط در سطرها انجام میشه:
در مسئلهای که مد نظر شما هست، هر دو نوع مرتبسازی لازم میشه. یعنی sort نباید محدود به سطرها یا ستون باشه. در این صورت، باید از axis=None استفاده کنید. None باعث میشه که آرایه شما flat بشه. برای اینکه بتونیم آرایه مرتب شده رو به شکل اولیه برگردونیم، اول باید shape آرایه رو در یک متغیر نگه داریم و بعد از sort کردن با axis=None اقدام به reshape آرایه بکنیم. من برای ذخیره shape آرایه اولیه از متغیر a_shape استفاده کردم.
یک مثال دیگه با shape متفاوت میذارم تا مسئله روشنتر بشه:امیدوارم توضیحاتم واضح بوده باشه.
در ضمن، من نمیدونستم کد ipython رو توی کدوم تگ بذارم، برای همین بصورت عکس گذاشتمش. پیشاپیش عذرخواهی میکنم از مدیران عزیز.