np.newaxis() – مثال جامع و توضیح
np.newaxis یک تابع در کتابخانه NumPy است که برای افزودن یک بعد جدید به آرایه استفاده می شود.
این تابع کاربردهای مختلفی دارد، از جمله:
-
انجام عملیات برداری روی آرایه ها با ابعاد ناسازگار: فرض کنید می خواهید دو آرایه را با هم جمع کنید، اما یکی از آنها یک بردار (1 بعدی) و دیگری یک ماتریس (2 بعدی) است. با استفاده از
np.newaxisمی توانید بردار را به یک ماتریس تبدیل کنید تا ابعاد آنها مطابقت داشته باشد و سپس جمع را انجام دهید. -
پخش آرایه ها به ابعاد بالاتر: می توانید از
np.newaxisبرای پخش یک آرایه با ابعاد پایین تر به ابعاد بالاتر استفاده کنید. این برای مواردی مفید است که می خواهید یک ثابت یا یک آرایه اسکالر را با یک آرایه با ابعاد بالاتر ترکیب کنید. -
ایجاد ماسک های برداری: می توانید از
np.newaxisبرای ایجاد ماسک های برداری برای استفاده در عملیات شرطی استفاده کنید.
در اینجا چند مثال از نحوه استفاده از np.newaxis آورده شده است:
مثال 1: جمع یک بردار و یک ماتریس:
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: پخش یک اسکالر به یک ماتریس:
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: ایجاد ماسک برای مقادیر زوج در یک ماتریس:
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می تواند خوانایی کد شما را کمی کاهش دهد، بنابراین باید از آن با احتیاط استفاده کنید.
منابع:



