دوتا از پرکاربردترین توابع numpy پایتون (مخصوصاً در علم داده) تابع reshape(-1,1) و تابع reshape(1,-1) است! این دوتابع میان همهی مولفهها رو میگیرن و به ترتیب توی یک ستون و توی یک سطر میندازن!
این تابع میاد هرچی مولفه هست رو میندازه توی یک سطر!
مثال: قطعه کد زیر رو در نظر بگیرید!
import numpy as np a=np.array([ [1,2], ["A","B"] ])
در خط اول که اومدیم و پکیج numpy رو با نام مستعار np وارد برنامه میکنیم! (چون حوصله نداریم هِی در سراسر کدی که مینویسیم اسم طولانی numpy رو صدا بزنیم! و میخوایم خودمون رو راحت کنیم و بگیم np! خیلی ساده و خلاصه! پس دلیل انتخاب نام مستعار همینه! اگر شما دوست ندارید، اسم مستعار استفاده نکنید!)
در خط دوم، یک آرایه درست کردیم! (مشاهده آموزش ساخت آرایه در numpy)
فقط اینو بگم که آرایه 2 در 2 ساختیم! (2 سطر و 2 ستون!) و قیافه آرایهمووون هم به صورت زیر است!
[['1' '2'] ['A' 'B']]
حالا اگر در ادامه بنویسیم:!
b=a.reshape(1,-1) print(b)
که در خط اول این کد بالا، اومدیم، آرایه a رو به صورت سطری در میاریم! [یعنی هر چی مولفه داره رو میگیریم و همشووون رو میندازیم توی یک سطر!] و اسمش رو هم میذاریم b!
در خط دوم هم همون b رو چاپ میکنیم!
که خروجی میشه:!
[['1' '2' 'A' 'B']]
مشاهده میکنید که همه مولفهها رو گرفت و همه رو انداخت توی یک سطر!
این تابع میاد هرچی مولفه هست رو میندازه توی یک ستون!
مثال: قطعه کد زیر رو باید در نظر بگیریم تا بعد توضیح بدم!
import numpy as np a=np.array([ [1,2], ["A","B"] ]) b=a.reshape(-1,1) print(b)
خط 1 تا 5 که دقیقاً قبلاً توضیح داده شده!
خط 6 اومدیم همه مولفههای a رو گرفتیم و میندازیم توی ستون! (کاری که reshape(-1,1) میکنه دقیقاً همینه!) و اسم متغیر حاصل رو هم گذاشتیم b !
در خط آخر هم اومدیم همون b رو چاپ میکنیم که میشه!:
[['1'] ['2'] ['A'] ['B']]
مشاهده میکنید که همه مولفهها رو گرفت و همه رو انداخت توی یک ستون!
خیلی ساده است! قبلش یه سوال بپرسم؟!
وقتی میگیم مثلاً (2,5) قبول دارید اون مولفه اول (یعنی 2) بیانگر سطر و اون مولفه دوم (یعنی 5) بیانگر ستون است؟! [باید بگید بله قبول دارم!]
پس یادتون باشه مولفه اول یعنی سطر! مولفه دوم یعنی ستون!
حالا reshape(1,-1) و reshape(1,-1) رو یه بار دیگه بهشون نگاه کنید!
در reshape(1,-1) کجا 1 داره؟! در مولفه اول! یعنی سطر! پس همه مولفهها رو میگیره و میندازه توی یک سطر!
در reshape(-1,1) کجا 1 داره؟! در مولفه دوم! یعنی ستون! پس همه مولفهها رو میگیره و میندازه توی یک ستون!
اون منفیِ 1 هم که یعنی همه مولفهها رو در نظر بگیره!
بگید خروجی کد زیر چی میشه؟!
import numpy as np a=np.arange(6).reshape(2,3).reshape(-1,1) print(a)
خط 1 که مشخصه!
خط 2 میاد یک آرایه میسازه از رنج اعداد 0 تا 5! (این رنج اعداد رو با تابع arange در numpy پایتون مشخص کردیم!)
بعد با تابع reshape(2,3) میاد همین 6 تا عدد (اعداد 0 تا 5 میشه 6 عدد دیگه!) رو در تبدیل میکنه به یک آرایه 2 در 3!
باز دوباره با تابع reshape(-1,1) میاد همهی مولفهها این آرایه 2 در 3 رو میگیره و میریزه توی یک ستون!
و اسم همهی این ها رو میذاره متغیری به اسم a!
در خط 3 هم همون a رو چاپ میکنه!
که خروجی میشه!:
[[0] [1] [2] [3] [4] [5]]
تعداد دیدگاه | 0 |
تاریخ انتشار | 11/08/2019 |
تاریخ بروزرسانی | 11/08/2019 |