آموزش numpy | عملیات تبدیلی با آرایه ها

تغییر شکل آرایه

تغییر شکل آرایه (Reshaping) در NumPy به شما امکان می‌دهد که آرایه‌ای با ابعاد مختلف ایجاد کنید بدون اینکه داده‌های اصلی تغییر کنند. این عملیات بسیار مفید است وقتی می‌خواهید داده‌های خود را برای عملیات مختلف آماده کنید.

مثال‌های تغییر شکل آرایه:

import numpy as np

# ایجاد یک آرایه یک بعدی با ۱۲ عنصر
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

# تغییر شکل به آرایه ۳x۴ (۳ سطر و ۴ ستون)
arr_2d = arr.reshape(3, 4)
print("آرایه ۳x۴:")
print(arr_2d)

# تغییر شکل به آرایه ۲x۲x۳ (۳ بعدی)
arr_3d = arr.reshape(2, 2, 3)
print("\nآرایه ۳ بعدی ۲x۲x۳:")
print(arr_3d)

# تغییر شکل به آرایه ۴x۳
arr_other = arr.reshape(4, 3)
print("\nآرایه ۴x۳:")
print(arr_other)

استفاده از -۱ برای بعد خودکار:

وقتی از -۱ استفاده می‌کنید، NumPy به طور خودکار اندازه آن بعد را محاسبه می‌کند:

# تغییر شکل به آرایه با ۶ سطر و تعداد ستون‌های خودکار
arr_auto = arr.reshape(6, -1)
print("آرایه با ۶ سطر:")
print(arr_auto)

# تغییر شکل به آرایه با ۲ سطر و ۶ ستون (با استفاده از -۱)
arr_auto2 = arr.reshape(2, -1)
print("\nآرایه با ۲ سطر:")
print(arr_auto2)

# تغییر شکل به آرایه یک بعدی
arr_flat = arr.reshape(-1)
print("\nآرایه یک بعدی:")
print(arr_flat)

تغییر شکل با متدهای مختلف:

# استفاده از reshape()
new_arr = np.reshape(arr, (3, 4))
print("با استفاده از np.reshape():")
print(new_arr)

# تغییر شکل با حفظ ابعاد اصلی
arr_resize = np.resize(arr, (3, 5))  # اگر اندازه کافی نباشد، داده‌ها تکرار می‌شوند
print("\nبا استفاده از np.resize():")
print(arr_resize)

تبدیل به آرایه یک بعدی:

# تبدیل آرایه دو بعدی به یک بعدی
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
arr_1d = arr_2d.reshape(-1)
print("آرایه دو بعدی اصلی:")
print(arr_2d)
print("\nتبدیل به آرایه یک بعدی:")
print(arr_1d)

# استفاده از ravel() - روش دیگر برای تبدیل به یک بعدی
arr_flat = arr_2d.ravel()
print("\nبا استفاده از ravel():")
print(arr_flat)

# استفاده از flatten() - ایجاد کپی جدید
arr_flatten = arr_2d.flatten()
print("\nبا استفاده از flatten():")
print(arr_flatten)

توجه مهم:

  • تعداد عناصر در آرایه اصلی و آرایه تغییر شکل داده شده باید برابر باشد
  • تغییر شکل، داده‌های اصلی را تغییر نمی‌دهد، فقط نمای آن را عوض می‌کند
  • از متد reshape() زمانی استفاده کنید که می‌خواهید نمای جدیدی ایجاد کنید
  • از متد resize() زمانی استفاده کنید که می‌خواهید آرایه را واقعاً تغییر اندازه دهید
پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3
  • 4