در حال بارگزاری

آموزش تابع nonzero در numpy پایتون (اندیس اعداد غیر صفر آرایه)

شما اینجا هستید:
آموزش تابع nonzero در numpy پایتون (اندیس اعداد غیر صفر آرایه)

آموزش تابع nonzero در numpy پایتون (اندیس اعداد غیر صفر آرایه)

به طور خیلی خلاصه تابع nonzero از پکیج numpy پایتون میاد اندیس عناصر غیر صفر یک آرایه رو بهمووون تحویل میده! در این آموزش به طور کامل و با مثال به توضیح عملکرد این تابع می‌پردازیم!

مثال 1:

خب بذارید یک مثال بزنم! تصویر زیر رو در نظر بگیرید! یه آرایه دو بعدی است که دو تا از اعدادش غیر صفر هستن! (یکی همون عدد 1 و یکی هم عدد 4)!

آموزش تابع nonzero در numpy پایتون (اعداد غیر صفر آرایه)

می‌خوام یه سوال ازتون بپرسم! اما قبلش یه نکته رو باید یادآوری کنم! و اون اینکه پایتون اندیس‌گذاریش رو از “صفر” شروع می‌کنه!

همینطور که در تصویر بالا هم می‌بینید ما شماره گذاری سطرها و ستون‌ها رو [به همین دلیل] از صفر شروع کردیم!

حالا سوالم اینه: میشه بگید کدوم دِرایه‌های این آرایه دو بعدی غیر صفر است؟!

بله درست گفتید، چون توی عکس نوشتیم!!!

حالا بیاید همین آرایه رو در پایتون بنویسیم!

import numpy as np
a = np.array([
    [1, 0],
    [0, 4]
])

اگر الان خوف کردید که این چیه که نوشتیم، یعنی پیش‌نیازهای این آموزش رو طِی نکردید و خیلی عجله‌ای اومدید توی این آموزش! لطفاً قبلش آموزش زیر رو نگاه کنید!

ساخت آرایه در numpy پایتون !

اما به طور خلاصه: در خط اول پکیج numpy رو با نام مستعار np وارد برنامه کردیم!

در خط دوم تا پنجم هم اومدیم همون آرایه خودمون رو تعریف کردیم! و صرفاً برای خوشگلی یه تعریف آرایه رو از خط 2 تا 5 طوووووول دادیم! وگرنه توی یک خط هم میشد نوشت، ولی ما هِی رفتیم خط بعد و .. تا خوشگل و تر و تمیز باشه! همین!

ولی تاکید می‌کنم اگر متوجه نمی‌شید کد بالا چجوری کار می‌کنه، باید به آموزشی که لینکش رو براتون گذاشتم مراجعه کنید!

خب حالا بریم سراغ اصل کار!

اصل کار اینه که بیایم به پایتون بگیم که python عزیز، لطفاً محبت کن اندیس عناصر غیرصفر این آرایه رو به ما بده!

برای اینکار باید بنویسیم:

print( np.nonzero(a) )

در اینجا هم داریم می‌گیم پرینت کن (یعنی چاپ کن) عناصر غیرصفرِ آرایه a رو!

قطعاً می‌دونید که در زبان انگیسی zero یعنی صفر و nonzero یعنی غیرصفر!

اون np هم که نام مستعار پکیج numpy بود! یعنی بهش می‌گیم برو از تابع nonzero که در پکیج numpy است استفاده کن!

اگر دارید می‌پرسید که نام مستعار چیه و از این جور سوالا! یعنی باید اون مطلب پیش‌نیاز رو اول مشاهده کنید، بعد دوباره بیاید اینجا!

خروجی این قطعه کدی که نوشتیم میشه [با تصویر گذاشتم که کاملاً متوجه بشید]:

آموزش تابع nonzero در numpy پایتون (اعداد غیر صفر آرایه)

خب! همینطور که می‌بینید پایتون برای اینکه بگه کدوم اندیس‌های آرایه غیر صفر هستن:

اول میگه: سطرهای دارای اندیس غیرصفر عبارت‌اند از: 0 و 1 !

و بعد میگه: ستون‌های دارای اندیس غیرصفر عبارت‌اند از: 0 و 1 !

که شما اگر دِرایه عناصر غیر صفر رو بخواید، باید مثل تصویر بالا، اعداد رو توی ذهنتون متناظر کنید و از این شکل‌هایی که در تصویر بالا کشیدیم، توی ذهن خودتون بکشید تا متوجه بشید!

تمرین [باید خودتون حل کنید!]:

در راستای کامل فهمیدن این مبحث، یه تمرین هم بهتون میدم و بعد هم والسّلام!

قطعه کد زیر رو در نظر بگیرید!

import numpy as np
x = np.array([
    [3, 0, 0],
    [0, 4, 0],
    [5, 6, 0]
])
print( np.nonzero(x) )

بفرمایید خروجی این بنده خدا چی میشه؟!

لطفاً از پایین تقلب نکنید و خودتون حل کنید! بعد جوابتون رو با پاسخ مقایسه کنید!

نصیحت برادرانه! لطفاً نگید خب بی‌خیال سریع بریم پاسخ رو ببینیم! چون بی‌فایدس، لطفاً قبلش خودتون حتماً این تمرین رو حل کنید و سعی کنید خروجیش رو حدس بزنید، بعد بیاید جواب ما رو بخونید!

پاسخ تمرین !

این ماتریسی که نوشتیم 4 تا عنصر غیر صفر داره! که من در زیر درایه‌های مربوطه رو لیست می‌کنم!

  • دِرایه 0 و 0
  • درایه 1 و 1
  • درایه 2 و 0
  • درایه 2 و 1 

برای اینکه جلواتر بتونیم با خروجی پایتون این‌ها رو مطابقت بدیم، اومدم رنگیشووون کردم اینا رو!

می‌دونیم که پایتون این شکلی به ما خروجی نمیده! یه جور دیگه خروجی میده! و خروجیش عبارت است از:

(array([0, 1, 2, 2], dtype=int64), array([0, 1, 0, 1], dtype=int64))

بازهم برای فهم هرچه بهتر اومدم خروجی‌ها رو رنگی کردم!

مثلاً اون قرمزها که 0 و 0 رو قرمز کردم، یعنی درایه 0 و 0 !

یا 1 و 1 رو آبی کردم، یعنی درایه 1 و 1 !

یا مثلاً 2 و 0 رو صورتی کردم، یعنی درایه 2 و 0 !

و اون 2 و 1 رو هم سبز کردم که یعنی درایه 2 و 1 !

واسّلام!

آموزش‌های پیشنهادی!

جلسه قبل: آموزش تابع concatenate در پکیج numpy پایتون !

جلسه بعد: آموزش تابع ptp در numpy پایتون !

آموزش کامل زبان برنامه نویسی پایتون

مطالب مرتبط

آموزش تابع eval در پایتون (Python)

16.1K بازدید 8 دیدگاه

آموزش تابع eval در پایتون (Python) به طور خلاصه تابع eval عبارت عددی یا معادل یک عبارت رو...

دستور zip(*) درپایتون (معکوس دستور zip) برای unzip کردن می‌دونیم که تابع zip میاد چند لیست/آرایه و غیره...

محصولات تصادفی
جزئیات نوشته
تعداد دیدگاه 0
تعداد بازدید 3.0K
تاریخ انتشار 28/10/2019
تاریخ بروزرسانی 28/10/2019
نویسنده گروه آموزشی کولاک
برای ارسال دیدگاه ابتداواردشوید