NumPy

تابع newaxis در NumPy

np.newaxis() – مثال جامع و توضیح

np.newaxis یک تابع در کتابخانه NumPy است که برای افزودن یک بعد جدید به آرایه استفاده می شود.

این تابع کاربردهای مختلفی دارد، از جمله:

  • انجام عملیات برداری روی آرایه ها با ابعاد ناسازگار: فرض کنید می خواهید دو آرایه را با هم جمع کنید، اما یکی از آنها یک بردار (1 بعدی) و دیگری یک ماتریس (2 بعدی) است. با استفاده از np.newaxis می توانید بردار را به یک ماتریس تبدیل کنید تا ابعاد آنها مطابقت داشته باشد و سپس جمع را انجام دهید.

  • پخش آرایه ها به ابعاد بالاتر: می توانید از np.newaxis برای پخش یک آرایه با ابعاد پایین تر به ابعاد بالاتر استفاده کنید. این برای مواردی مفید است که می خواهید یک ثابت یا یک آرایه اسکالر را با یک آرایه با ابعاد بالاتر ترکیب کنید.

  • ایجاد ماسک های برداری: می توانید از np.newaxis برای ایجاد ماسک های برداری برای استفاده در عملیات شرطی استفاده کنید.

در اینجا چند مثال از نحوه استفاده از np.newaxis آورده شده است:

مثال 1: جمع یک بردار و یک ماتریس:

Python
import numpy as np

vector = np.array([1, 2, 3])
matrix = np.array([[4, 5, 6], [7, 8, 9]])

# اضافه کردن بردار به هر سطر ماتریس
result = vector + matrix[:, np.newaxis]
print(result)

مثال 2: پخش یک اسکالر به یک ماتریس:

Python
import numpy as np

scalar = 10
matrix = np.random.randint(1, 20, size=(3, 4))

# کم کردن اسکالر از هر عنصر در ماتریس
centered_matrix = matrix - scalar[:, np.newaxis]
print(centered_matrix)

مثال 3: ایجاد ماسک برای مقادیر زوج در یک ماتریس:

Python
import numpy as np

matrix = np.random.randint(1, 10, size=(3, 4))

# ایجاد ماسک برای اعداد زوج
mask = matrix % 2 == 0[:, np.newaxis]
print(mask)

نکات:

  • np.newaxis معادل None است که در هنگام فهرست نویسی آرایه ها استفاده می شود. به عنوان مثال، matrix[0, :, np.newaxis] معادل matrix[0, :] است.
  • می توانید از np.expand_dims() به عنوان جایگزینی برای np.newaxis استفاده کنید. عملکرد آنها مشابه است، اما np.expand_dims نام واضح تری دارد.
  • استفاده از np.newaxis می تواند خوانایی کد شما را کمی کاهش دهد، بنابراین باید از آن با احتیاط استفاده کنید.

منابع:

5/5 ( 1 امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا