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
می تواند خوانایی کد شما را کمی کاهش دهد، بنابراین باید از آن با احتیاط استفاده کنید.
منابع: