برنامه نویسی

راهنمای مبتدی برای numpy برای تجزیه و تحلیل داده ها

در این مقاله ، ما به Numpy ، یک کتابخانه Python که ضروری است ، شیرجه می زنیم که باعث می شود تعداد و داده ها ساده و هیجان انگیز باشد. این که آیا شما تازه با Python شروع کرده اید یا در مورد تجزیه و تحلیل داده ها کنجکاو هستید ، ما شما را با یک سفر دوستانه و گام به گام پوشانده ایم. ما نحوه کار با آرایه ها ، انجام محاسبات را با زحمت کشف خواهیم کرد و از ابزارهای قدرتمند Numpy برای تجزیه و تحلیل داده ها استفاده خواهیم کرد. برای صعود از آن ، ما با یک مینی پروژه دستی به پایان خواهیم رسید تا همه چیز را با هم جمع کنیم. بیایید این ماجراجویی را شروع کنیم و جادوی Numpy را باز کنیم!


تنظیم محیط

قبل از شروع کاوش NUMPY ، باید محیط خود را تنظیم کنیم تا نمونه های کد و مینی پروژه را بعداً اجرا کنیم. در اینجا نحوه آماده شدن همه چیز آورده شده است:

  1. پایتون را نصب کنید: اگر پایتون هنوز روی سیستم شما نیست ، می توانیم آن را از python.org بارگیری کنیم. در حین نصب ، ما گزینه ای برای اضافه کردن پایتون به مسیر ما را بررسی خواهیم کرد – این استفاده از ترمینال را آسان تر می کند.
  2. نصب numpy: ما یک ترمینال (یا فرمان فرمان را در ویندوز) باز خواهیم کرد و اجرا می کنیم:
   pip install numpy
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این به مدیر بسته Python (PIP) می گوید که NUMPY را برای ما واکشی و نصب کند.

  1. ویرایشگر را انتخاب کنید: ما ابزاری را برای نوشتن کد خود انتخاب خواهیم کرد. گزینه ها شامل:

    • بیکار: این همراه با پایتون است – فقط پس از نصب آن را جستجو کنید.
    • در مقابل کد: یک ویرایشگر رایگان و محبوب در Code.VisualStudio.com موجود است.
    • یا هر ویرایشگر متنی را که ترجیح می دهیم!
  2. تنظیمات را تست کنید: برای تأیید همه چیز ، ما یک پرونده ایجاد خواهیم کرد (به عنوان مثال ، test.py) در ویرایشگر ما و اضافه کردن:
   import numpy as np
   print(np.__version__)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

وقتی آن را اجرا می کنیم ، یک شماره نسخه را می بینیم (مانند 1.26.4) یعنی همه ما تنظیم شده ایم!

با آماده بودن محیط ، ما خوب هستیم که به Numpy شیرجه بزنیم!


numpy چیست؟

Numpy یک کتابخانه پایتون است که برای محاسبات عددی ساخته شده است. این یک ساختار داده ویژه به ما می دهد ndarray (آرایه N بعدی) ، که سریعتر و کارآمدتر از لیست های معمولی پایتون است. این یک سنگ بنای تجزیه و تحلیل داده ها در پایتون است و به طرز شگفت انگیزی با کتابخانه هایی مانند Pandas و Matplotlib جفت می شود.

برای شروع استفاده از NUMPY در کد ما ، آن را با:

import numpy as np  # 'np' is the common shortcut
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


چرا از numpy استفاده می کنیم؟

قبل از اینکه فراتر برویم ، بیایید درک کنیم که چرا Numpy بسیار ارزشمند است:

  • سرعت: برای محاسبات بسیار سریع است و کار ما را کارآمد می کند.
  • سهولت: ما نیازی به حلقه های پیچیده نخواهیم داشت.
  • قدرت: برای ساده سازی تجزیه و تحلیل داده ها ، بسیاری از توابع داخلی را ارائه می دهد.

با توجه به این مزایا ، بیایید ببینیم Numpy چه کاری می تواند انجام دهد!


1. ایجاد آرایه های numpy

آرایه ها پایه و اساس Numpy هستند و ما روش های مختلفی را برای ساختن آنها کشف خواهیم کرد.

از یک لیست

ما می توانیم یک لیست به طور منظم Python را به یک آرایه Numpy تبدیل کنیم تا با آن کار کنیم.

# Turning a list into a 1D array
array = np.array([1, 2, 3, 4])
print(array)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.array() لیست ما را به یک آرایه numpy تبدیل می کند.
  • خروجی: [1 2 3 4] – یک آرایه 1D ، مانند یک ردیف اعداد.

آرایه 2D (ماتریس)

ما همچنین می توانیم با استفاده از لیستی از لیست ها ، یک آرایه 2D را که به نظر می رسد مانند یک شبکه یا ماتریس است ، بسازیم.

# Building a 2D array with rows and columns
array_2d = np.array([[1, 2], [3, 4]])
print(array_2d)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • هر لیست داخلی در آرایه 2D ما به یک ردیف تبدیل می شود.
  • خروجی:
  [[1 2]
   [3 4]]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • این یک ماتریس 2×2 به ما می دهد.

آرایه های خاص

Numpy به ما امکان می دهد آرایه هایی را با الگوهای خاص مانند همه صفرها ، آنهایی که یا دنباله ای ایجاد می کنیم ، تولید کنیم.

# Generating an array of zeros
zeros = np.zeros((2, 3))  # 2 rows, 3 columns
print(zeros)

# Generating an array of ones
ones = np.ones((3, 2))   # 3 rows, 2 columns
print(ones)

# Generating a range of numbers
range_array = np.arange(0, 10, 2)  # Start at 0, stop before 10, step by 2
print(range_array)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.zeros((2, 3)): یک آرایه 2×3 پر از ما به ما می دهد 0.0بشر

    • خروجی: [[0. 0. 0.] [0. 0. 0.]]
  • np.ones((3, 2)): یک آرایه 3×2 از 1.0بشر

    • خروجی: [[1. 1.] [1. 1.] [1. 1.]]
  • np.arange(0, 10, 2): تولید می کند [0 2 4 6 8]، مشابه پایتون range() اما به عنوان یک آرایه

آرایه های تصادفی

برای آزمایش یا شبیه سازی ، می توانیم آرایه هایی با مقادیر تصادفی تولید کنیم.

# Generating random floats between 0 and 1
random_array = np.random.rand(2, 2)  # 2x2 array
print(random_array)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.random.rand(2, 2): یک آرایه 2×2 از اعداد تصادفی بین 0 تا 1 ایجاد می کند.
  • خروجی: چیزی شبیه به [[0.45 0.12] [0.78 0.33]] (مقادیر هر بار متفاوت خواهند بود).

2. خصوصیات آرایه

درک ساختار آرایه ما برای تجزیه و تحلیل مهم است ، بنابراین بیایید به برخی از خصوصیات مفید بپردازیم.

# Setting up a 2D array
array = np.array([[1, 2, 3], [4, 5, 6]])

# Checking the shape: rows and columns
print("Shape:", array.shape)  # (2, 3)

# Checking the total number of elements
print("Size:", array.size)   # 6

# Checking the data type
print("Type:", array.dtype)  # int64 (or similar)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • shape: (2, 3) به ما می گوید 2 ردیف و 3 ستون داریم.
  • size: 6 تعداد کل عناصر (2 * 3) است.
  • dtype: int64 نشان می دهد عناصر ما عدد صحیح هستند.

3 عملیات اساسی

Numpy ریاضی را با عملیات بردار، یعنی ما می توانیم حلقه ها را کاملاً پرش کنیم!

عملیات عاقلانه

ما می توانیم با سهولت عملیات را در هر عنصر به صورت آرایه اعمال کنیم.

# Adding 2 to every element
a = np.array([1, 2, 3])
print(a + 2)  # [3 4 5]

# Multiplying every element by 3
print(a * 3)  # [3 6 9]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • a + 2: 2 به هر عنصر اضافه می کند: [1+2, 2+2, 3+2]بشر
  • a * 3: هر عنصر را ضرب می کند: [1*3, 2*3, 3*3]بشر

عملیات آرایه به آرایه

ما همچنین می توانیم دو عنصر آرایه را بر اساس عنصر ترکیب کنیم.

# Adding two arrays together
b = np.array([4, 5, 6])
print(a + b)  # [5 7 9]

# Multiplying two arrays
print(a * b)  # [4 10 18]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • a + b: علاوه بر این عناصر عاقلانه را اجرا می کند: [1+4, 2+5, 3+6]بشر
  • a * b: ضرب عناصر عاقلانه را انجام می دهد: [1*4, 2*5, 3*6]بشر

عملیات ماتریس

برای آرایه های 2D ، می توانیم عملیات خاص ماتریس مانند انتقال یا ضرب را انجام دهیم.

# Setting up a 2x2 matrix
matrix = np.array([[1, 2], [3, 4]])

# Transposing (swapping rows and columns)
print(matrix.T)

# Performing matrix multiplication
print(np.dot(matrix, matrix))
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • matrix.T: تلنگر [[1 2] [3 4]] به [[1 3] [2 4]]بشر
  • np.dot(): ماتریس را به خودی خود ضرب می کند و بازده:

    • خروجی: [[7 10] [15 22]]بشر

4. توابع کلیدی برای تجزیه و تحلیل داده ها

حال ، بیایید عملکردهای قدرتمند Numpy را که تجزیه و تحلیل داده ها را به یک نسیم تبدیل می کند ، کشف کنیم.

نمایه سازی و برش

ما می توانیم با استفاده از نمایه سازی و برش به قسمت های خاصی از آرایه های خود دسترسی پیدا کنیم.

# Working with a 1D array
array = np.array([10, 20, 30, 40])
print(array[1])      # 20 (2nd element)
print(array[1:3])    # [20 30] (elements 2 to 3)

# Working with a 2D array
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d[0, 1])  # 2 (row 1, column 2)
print(array_2d[:, 1])  # [2 5] (all rows, column 2)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • array[1]: عنصر را در فهرست 1 بازیابی می کند.
  • array[1:3]: برش از شاخص 1 تا 2.
  • array_2d[0, 1]: Fetches Row 0 ، ستون 1.
  • array_2d[:, 1]: : همه ردیف ها را انتخاب می کند ، 1 ستون 1 را انتخاب می کند.

توابع آماری

Numpy ابزارهای مفیدی را برای خلاصه کردن داده های ما از نظر آماری ارائه می دهد.

# Analyzing a simple dataset
data = np.array([1, 2, 3, 4, 5])
print(np.mean(data))    # 3.0 (average)
print(np.median(data))  # 3.0 (middle value)
print(np.std(data))     # 1.414... (spread)
print(np.min(data))     # 1 (smallest)
print(np.max(data))     # 5 (largest)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • mean: با جمع بندی تمام مقادیر و تقسیم بر تعداد ، میانگین را محاسبه می کند.
  • median: هنگام مرتب سازی ارزش متوسط ​​را پیدا می کند.
  • std: اندازه گیری داده های ما را اندازه گیری می کند.
  • min/max: کوچکترین و بزرگترین مقادیر را مشخص می کند.

فیلتر کردن با np.where()

ما می توانیم داده های خود را فیلتر کنیم یا مقادیر را بر اساس شرایط استفاده جایگزین کنیم np.where()بشر

# Filtering values greater than 3
data = np.array([1, 5, 3, 6, 2])
indices = np.where(data > 3)
print(indices)        # (array([1, 3]),)
print(data[indices])  # [5 6]

# Replacing values > 3 with 10
data_new = np.where(data > 3, 10, data)
print(data_new)  # [ 1 10  3 10  2]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.where(data > 3): شاخص ها را برمی گرداند [1, 3] جایی که مقادیر بیش از 3 است.
  • data[indices]: آن مقادیر را استخراج می کند: [5, 6]بشر
  • np.where(condition, x, y): استفاده می کند x (10) جایی که درست است ، در غیر این صورت نگه می دارد y (مقدار اصلی).

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

گاهی اوقات ، ما باید شکل آرایه را متناسب با تحلیل خود تغییر دهیم ، و reshape() به ما کمک می کند تا این کار را انجام دهیم.

# Reshaping a 1D array into 2D
array = np.arange(6)  # [0 1 2 3 4 5]
reshaped = array.reshape(2, 3)
print(reshaped)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • reshape(2, 3): 6 عنصر را به یک آرایه 2×3 تبدیل می کند:

    • خروجی: [[0 1 2] [3 4 5]]بشر

مرتب سازی

ما می توانیم داده های خود را به ترتیب استفاده کنیم sort()بشر

# Sorting an unsorted array
unsorted = np.array([3, 1, 4, 2])
print(np.sort(unsorted))  # [1 2 3 4]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.sort(): آرایه را از کوچکترین تا بزرگترین ترتیب می دهد.

مقادیر منحصر به فرد

برای یافتن مقادیر متمایز در داده های خود ، ما استفاده می کنیم unique()بشر

# Finding unique values
data = np.array([1, 2, 2, 3, 1])
print(np.unique(data))  # [1 2 3]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • np.unique(): کپی ها را حذف می کند و نتیجه را مرتب می کند.

تجمع

ما می توانیم داده های خود را ، مانند جمع بندی مقادیر ، با توابع تجمیع خلاصه کنیم.

# Summarizing a 2D array
array_2d = np.array([[1, 2], [3, 4]])
print(np.sum(array_2d))         # 10 (total)
print(np.sum(array_2d, axis=0)) # [4 6] (sum of columns)
print(np.sum(array_2d, axis=1)) # [3 7] (sum of rows)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شکست:

  • sum(): همه عناصر را با هم اضافه می کند.
  • axis=0: خلاصه هر ستون.
  • axis=1: مبالغ در هر سطر.

5. مینی پروژه: تجزیه و تحلیل داده های تصادفی

حال ، بیایید همه چیز را با یک مینی پروژه سرگرم کننده همراه کنیم!

هدف پروژه

ما یک آرایه 3×3 از اعداد صحیح تصادفی ایجاد خواهیم کرد ، حداکثر مقدار را در هر سطر پیدا می کنیم ، مقادیر بیشتر از 5 را با 0 جایگزین می کنیم و میانگین آرایه حاصل را محاسبه می کنیم.

تنظیم پروژه

از آنجا که ما قبلاً محیط خود را تنظیم کرده ایم ، فقط باید پرونده ای را برای این پروژه تهیه کنیم:

  1. یک فایل ایجاد کنید: در ویرایشگر انتخاب شده ما ، ما یک پرونده جدید به نام ایجاد خواهیم کرد numpy_project.pyبشر
  2. کد را اضافه کنید: ما کد زیر را در این پرونده کپی کرده و آن را اجرا می کنیم.

رمز پروژه

import numpy as np  # Import NumPy

# Step 1: Generating a 3x3 array of random integers between 1 and 10
data = np.random.randint(1, 11, size=(3, 3))
print("Original array:\n", data)

# Step 2: Finding the maximum value in each row
max_per_row = np.max(data, axis=1)
print("\nMax value in each row:", max_per_row)

# Step 3: Replacing values greater than 5 with 0
filtered_data = np.where(data > 5, 0, data)
print("\nArray after replacing > 5 with 0:\n", filtered_data)

# Step 4: Calculating the average of the final array
average = np.mean(filtered_data)
print("\nAverage of final array:", average)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مثال اجرا و تجزیه

فرض کنید آرایه تصادفی ما به این شکل است:

Original array:
 [[ 3  7  2]
  [ 9  4  6]
  [ 1  8  5]]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • مرحله 1: np.random.randint(1, 11, size=(3, 3)) یک آرایه 3×3 با شماره های 1 تا 10 تولید می کند.
  • مرحله 2: np.max(data, axis=1) حداکثر را در هر ردیف پیدا می کند: [7 9 8]بشر

    • axis=1 یعنی ما به دنبال ردیف هستیم.
  • مرحله 3: np.where(data > 5, 0, data) 7 ، 9 ، 6 ، 8 را با 0 جایگزین می کند:

  [[3 0 2]
   [0 4 0]
   [1 0 5]]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • مرحله 4: np.mean(filtered_data) میانگین را محاسبه می کند: (3+0+2+0+4+0+1+0+5)/9 = 1.67بشر

از آنجا که اعداد تصادفی هستند ، خروجی ما متفاوت خواهد بود ، اما روند یکسان است!


پایان

تبریک می گویم – ما اولین قدم بزرگ خود را به دنیای Numpy بردیم! ما چگونگی کار با آرایه ها ، انجام محاسبات سریع و تجزیه و تحلیل داده ها را با سهولت بررسی کرده ایم. مینی پروژه به ما فرصتی داد تا این مهارت ها را به روشی عملی بکار گیریم و اکنون مجهز هستیم تا عمیق تر حفر کنیم. Numpy درهای تجزیه و تحلیل داده ها را باز می کند ، و با کمی تمرین بیشتر ، می توانیم مجموعه داده های بزرگتر را کنترل کنیم یا آن را با ابزارهایی مانند Matplotlib برای تصاویر یا پاندا برای داده های ساخت یافته ترکیب کنیم. بیایید آزمایش کنیم و از سفر هیجان انگیز با Python و Numpy لذت ببریم!


نوشته های مشابه

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

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

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