آموزش نامپای (Numpy): بخش اول

آموزش نامپای (Numpy): بخش اول

numpy
آموزش پیشرفته پایتون

آموزش نامپای (Numpy): بخش اول

pip install numpy

conda install numpy

import numpy as np

# چاپ نسخه نامپای جهت اطمینان از نصب
print(f"نسخه نامپای نصب شده: {np.__version__}")

# تست یک آرایه ساده
test_arr = np.array([1, 2, 3])
print("آرایه تست:", test_arr)
list1 = [1, 2, 3]
list2 = [4, 5, 6]

# خروجی الحاق است، نه جمع ریاضی:
print(list1 + list2)
# خروجی: [1, 2, 3, 4, 5, 6]
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# جمع برداری مستقیم بدون نیاز به حلقه
print(arr1 + arr2)
# خروجی: [5 7 9]
import numpy as np

# ترکیب عدد صحیح، اعشاری و رشته در یک لیست
mixed_list = [10, 3.14, "ECG"]

# نامپای همه را به رشته (String) تبدیل می‌کند تا آرایه همگن بماند
arr = np.array(mixed_list)
print(arr)
# خروجی: ['10' '3.14' 'ECG']
print(arr.dtype)
# خروجی: <U32 (رشته یونیکد)
۳. ویژگی (Attribute) – یا صفت

نحوه فراخوانی: object.attribute_name (بدون پرانتز!)

import numpy as np

arr = np.array([[1, 2], [3, 4]])

# --- تفاوت shape (ویژگی vs تابع) ---
print(f"ویژگی: {arr.shape}")    # خروجی: (2, 2)
print(f"تابع: {np.shape(arr)}")  # خروجی: (2, 2)

# --- تفاوت sum (متد vs تابع) ---
print(f"متد: {arr.sum()}")       # خروجی: 10
print(f"تابع: {np.sum(arr)}")    # خروجی: 10

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

import numpy as np

# ۱ بعدی (بردار)
arr1 = np.array([1, 2, 3])

# ۲ بعدی (ماتریس)
arr2 = np.array([[1, 2], [3, 4]])

# ۳ بعدی (تنسور)
# یک لیستِ شامل دو ماتریس ۲×۲
arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

print("ابعاد آرایه ۳ بعدی:", arr3.shape) # خروجی: (2, 2, 2)

x = np.array([1, 2, 3])
print(dir(x))  # لیست بلندبالایی از تمام قابلیت‌ها چاپ می‌شود

x.shape (ابعاد آرایه)
arr = np.array([[10, 20, 30], 
                [40, 50, 60]])

print(arr.shape)
# خروجی: (2, 3) -> یعنی 2 سطر و 3 ستون

arr1d = np.array([1, 2, 3])
arr2d = np.array([[1, 2], [3, 4]])

print(arr1d.ndim)  # خروجی: 1 (بردار)
print(arr2d.ndim)  # خروجی: 2 (ماتریس دو بعدی)
arr_int = np.array([1, 2, 3])
arr_float = np.array([1.5, 2.0, 3.7])

print(arr_int.dtype)    # خروجی: int64 (یا int32 بسته به سیستم)
print(arr_float.dtype)  # خروجی: float64
arr = np.array([[1, 2, 3, 4], 
                [5, 6, 7, 8]])

print(arr.size)
# خروجی: 8 (چون آرایه 2 سطر و 4 ستون دارد: 2 * 4 = 8)

# یک آرایه یک‌بعدی با ۶ عنصر
arr = np.array([1, 2, 3, 4, 5, 6])

# تبدیل به ماتریس ۲ سطر و ۳ ستون
reshaped = arr.reshape(2, 3)

print(reshaped)
# خروجی:
# [[1 2 3]
#  [4 5 6]]
matrix = np.array([[1, 2], 
                   [3, 4]])

flat = matrix.flatten()

print(flat)
# خروجی: [1 2 3 4]
arr_float = np.array([1.2, 3.8, 5.5])

# تبدیل اعشاری به عدد صحیح (بخش اعشار حذف می‌شود)
arr_int = arr_float.astype(int)

print(arr_int)        # خروجی: [1 3 5]
print(arr_int.dtype)  # خروجی: int64 (یا int32)
import numpy as np

mat = np.array([
    [10, 20, 30],
    [40, 50, 60],
    [70, 80, 90]
])

# سطر اول (ایندکس ۰)، ستون دوم (ایندکس ۱)
print(mat[0, 1])
# خروجی: 20

# دسترسی به سطر آخر و ستون آخر با ایندکس منفی
print(mat[-1, -1])
# خروجی: 90
import numpy as np

mat = np.array([
    [10, 20, 30, 40],
    [50, 60, 70, 80],
    [90, 100, 110, 120]
])

# انتخاب سطرهای ۰ و ۱، و ستون‌های ۱ و ۲
sub_mat = mat[0:2, 1:3]
print(sub_mat)
# خروجی:
# [[20 30]
#  [60 70]]

# انتخاب تمام سطرهای ستون دوم (علامت : یعنی همه سطرها)
col_one = mat[:, 1]
print(col_one)
# خروجی: [ 20  60 100]

# انتخاب کل سطر دوم
row_one = mat[1, :]
print(row_one)
# خروجی: [50 60 70 80]
۳. فیلتر شرطی (Boolean Masking)
import numpy as np

data = np.array([5, 12, 18, 7, 25, 30, 3])

# ساخت ماسک شرطی
mask = data > 10
print("ماسک بولی:", mask)
# خروجی: [False  True  True False  True  True False]

# فیلتر داده‌ها با استفاده از ماسک
filtered = data[mask]
print("اعداد بزرگتر از ۱۰:", filtered)
# خروجی: [12 18 25 30]
import numpy as np

scores = np.array([8, 11, 14, 17, 19, 9, 20])

# استخراج نمرات بین ۱۰ تا ۱۸
selected = scores[(scores >= 10) & (scores < 18)]
print("نمرات بازه ۱۰ تا ۱۸:", selected)
# خروجی: [11 14 17]

# تغییر مقادیر بر اساس شرط (تغییر تمام نمرات مردودی به صفر)
scores[scores < 10] = 0
print("آرایه پس از اصلاح نمرات:", scores)
# خروجی: [ 0 11 14 17 19  0 20]

فکر خود را اینجا بگذارید

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