تابع concatenate در numpy پایتون میاد دو آرایه رو به هم میچسبوونه (وصل میکنه، کنار هم میذاره!) که در این آموزش به صورت کامل و با مثال به بررسی این تابع میپردازیم!
اگر تیتر براتون عجیب غریب به نظر میرسه نگران نباشید! تا لحظاتی دیگه براتون رفع ابهام میکنیم!
اول قطعه کد زیر رو در نظر بگیرید!
import numpy as np a=np.array([ [1,2], [3,4] ]) b=np.array([ [5,6] ]) result=np.concatenate( (a,b),axis=0 ) print(result)
در خط 1 که مثل همهی آموزشهای قبلی پکیج یا کتابخانه numpy را با اسم مستعار np وارد برنامه میکنیم!
در خط 2 تا 5، یک آرایه 2 در 2 میسازیم به اسم a! (پیشنیاز: آموزش نحوه ساخت آرایه در numpy پایتون که در جلسات ابتدایی گفتیم!)
در خط 6 تا 8 هم یک آرایه 1 در 2 دیگه میسازیم به اسم b!
حالا میخوایم این ها رو به هم وصل کنیم و بذاریم کنار هم! یعنی اون آرایه b رو بذاریم زیر a ! (یعنی به صورت سطری بهش اضافه کنیم! یعنی در ادامه سایر سطرهای a، بیایم b رو قرار بدیم!) برای این هدف در خط 9، اومدیم a و b رو رو به هم وصل میکنیم و میذاریم کنار هم (اون concatenate کارش همینه!)
شاید بپرسید اون np چیه؟! (اگر آموزشهای قبلی رو ندیده باشید باید این سوال رو بپرسید! اون np در واقع مخفف همون numpy است! که گفتیم numpy رو با اسم مستعار np اومدیم وارد برنامه کردیم! و حالا میگیم از پکیج numpy (همون np یعنی numpy) بیا از تابعی به اسم concatenate استفاده کن واسه کنارهم قراردادن و وصل کردن a و b !)
سوال بعدی اینه که اون axis=0 چیست؟! جواب اینه که اون عبارت به numpy میفهمونه که بیاد b رو به در محور صفرم (که در اینجا یعنی سطر) بهش اضافه کنه! یعنی بیاد b رو در ادامه سطرهای a قرار بده!
که خروجی میشه:!
[[1 2] [3 4] [5 6]]
حالا این بار قطعه کد زیر رو در نظر بگیرید!
import numpy as np a=np.array([ [1,2], [3,4] ]) b=np.array([ [5], [6] ]) result=np.concatenate( (a,b),axis=1 ) print(result)
خط 1 تا 5 که مشابه قبلی است!
خط 6 تا 9 هم اومدیم یک ماتریس 2 در 1 ساختیم، همین!
در خط 10 هم اومدیم a و b رو در محور یکم (در اینجا یعنی ستونی) به هم وصل کردیم! یعنی اینکه b رو بذاره کنار ستونهای a !
خروجی قطعه کد بالا میشه:!
[[1 2 5] [3 4 6]]
مشکل کد زیر چیست به نظرتون؟! [فقط بخشی از کد آورده شده است!]
result=np.concatenate(a,b,axis=1)
مشکل اینه که a,b رو به صورت جداگانه نوشته و نه داخل یک پرانتز! یعنی باید a و b رو داخل یک پرانتز و به صورت زیر مینوشت!
result=np.concatenate((a,b),axis=1)
اگر پرانتز نذارید، اشتباه میشه و پایتون بنده خدا پیش خودش میگه: این بنده خدا چرا اینقدر بهم ورودی داده! [خطایی هم که میده به همین موضوع اشاره داره]!
خلاصه اینکه حواستون باشه اون پرانتز رو فراموش نکنید!
مشکل قطعه کد زیر چیه به نظرتون؟!
import numpy as np a=np.array([ [1,2], [3,4] ]) b=np.array([ [5,6] ]) result=np.concatenate( (a,b),axis=1 ) print(result)
مشکلش اینه که مگه میشه یک آرایه 2 در 2 رو با یک آرایه 1 در 2 به صورت ستونی کنار هم گذاشت؟! (به وضوح نمیشه دیگه! ابعادشون به هم نمیخوره!)
آموزش رایگان زبان برنامه نویسی پایتون
تعداد دیدگاه | 4 |
تاریخ انتشار | 13/08/2019 |
تاریخ بروزرسانی | 13/08/2019 |