فهرست سرفصل‌های NumPy
خانه (HOME) مقدمه (Intro) شروع کار (Getting Started) ساخت آرایه ها (Creating Arrays) ایندکس گذاری آرایه (Array Indexing) برش آرایه (Array Slicing) انواع داده (Data Types) کپی در برابر View (Copy vs View) شکل آرایه (Array Shape) تغییر شکل آرایه (Array Reshape) حلقه روی آرایه (Array Iterating) ترکیب آرایه ها (Array Join) تقسیم آرایه ها (Array Split) جستجو در آرایه (Array Search) مرتب سازی آرایه (Array Sort) فیلتر کردن آرایه (Array Filter) مقدمه تصادفی سازی (Random Intro) توزیع داده (Data Distribution) جابه جایی تصادفی (Random Permutation) ماژول Seaborn (Seaborn Module) توزیع نرمال (Normal Distribution) توزیع دوجمله ای (Binomial Distribution) توزیع پواسون (Poisson Distribution) توزیع یکنواخت (Uniform Distribution) توزیع لجستیک (Logistic Distribution) توزیع چندجمله ای (Multinomial Distribution) توزیع نمایی (Exponential Distribution) توزیع کای دو (Chi Square Distribution) توزیع ریلی (Rayleigh Distribution) توزیع پارتو (Pareto Distribution) توزیع زیف (Zipf Distribution) مقدمه ufunc (ufunc Intro) ساخت تابع ufunc (ufunc Create Function) حساب ساده با ufunc (ufunc Simple Arithmetic) گرد کردن اعشار با ufunc (ufunc Rounding Decimals) لگاریتم ها با ufunc (ufunc Logs) جمع ها با ufunc (ufunc Summations) حاصل ضرب ها با ufunc (ufunc Products) تفاضل ها با ufunc (ufunc Differences) کمترین مضرب مشترک با ufunc (ufunc Finding LCM) بزرگترین مقسوم علیه مشترک با ufunc (ufunc Finding GCD) توابع مثلثاتی با ufunc (ufunc Trigonometric) توابع هذلولوی با ufunc (ufunc Hyperbolic) عملیات مجموعه ای با ufunc (ufunc Set Operations) ویرایشگر (Editor) آزمون (Quiz) تمارین (Exercises) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
NumPy

NumPy — توابع مثلثاتی با ufunc (ufunc Trigonometric)

آخرین بروزرسانی: 1404/08/25

توابع مثلثاتی با ufunc (ufunc Trigonometric)

در این بخش می خواهیم ببینیم توابع مثلثاتی با ufunc در NumPy چطور کار می کنند؛ از سینوس و کسینوس ساده تا تبدیل درجه و رادیان، به همراه چند مثال دقیق از منبع.

آشنایی با توابع مثلثاتی با ufunc در NumPy

در متن منبع گفته شده NumPy سه ufunc مثلثاتی sin()، cos() و tan() دارد.

این توابع ورودی را برحسب رادیان می گیرند و مقدار سینوس، کسینوس یا تانژانت را برمی گردانند.

اگر بخواهی مرجع اصلی را ببینی، بخش توابع مثلثاتی با ufunc در NumPy همین صفحه را کامل توضیح داده است.

import numpy as np

x = np.sin(np.pi / 2)

print(x)

مشاهده در ادیتور

طبق مثال منبع، این کد مقدار سینوس π/2 را حساب می کند که برابر 1 است.

در ادامه همان منبع، سینوس چند زاویه مختلف به صورت آرایه محاسبه شده است.

import numpy as np

arr = np.array([np.pi / 2, np.pi / 3, np.pi / 4, np.pi / 5])

x = np.sin(arr)

print(x)

مشاهده در ادیتور

همان طور که در منبع آمده، این بار سینوس برای تمام اعضای آرایه محاسبه می شود.

تبدیل درجه (Degree) به رادیان (Radian)

در متن منبع گفته شده همه توابع مثلثاتی NumPy به صورت پیش فرض رادیان می گیرند.

همچنین اشاره شده که رابطه رادیان این است: مقدار رادیان = π/180 × درجه.

برای تبدیل درجه به رادیان از تابع np.deg2rad() استفاده شده است.

import numpy as np

arr = np.array([90, 180, 270, 360])

x = np.deg2rad(arr)

print(x)

مشاهده در ادیتور

همان طور که منبع توضیح داده، این کد درجه های 90، 180، 270 و 360 را به رادیان تبدیل می کند.

تبدیل رادیان به درجه با ufunc

در ادامه منبع، تبدیل برعکس یعنی رادیان به درجه هم انجام شده است.

برای این کار از تابع np.rad2deg() استفاده شده است.

import numpy as np

arr = np.array([np.pi / 2, np.pi, 1.5 * np.pi, 2 * np.pi])

x = np.rad2deg(arr)

print(x)

مشاهده در ادیتور

طبق مثال، این بار چند مقدار رادیان مثل π/2 و π به درجه تبدیل می شوند.

توابع معکوس مثلثاتی با ufunc

در بخش بعدی منبع، توابع معکوس مثلثاتی معرفی شده اند.

در متن گفته شده هدف، پیدا کردن زاویه از روی مقدار سینوس، کسینوس یا تانژانت است.

برای این کار از ufunc های arcsin()، arccos() و arctan() استفاده می شود.

این توابع زاویه را برحسب رادیان برمی گردانند.

import numpy as np

x = np.arcsin(1.0)

print(x)

مشاهده در ادیتور

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

زاویه برای مقادیر آرایه با ufunc

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

آرایه شامل مقادیر 1، -1 و 0٫1 است.

import numpy as np

arr = np.array([1, -1, 0.1])

x = np.arcsin(arr)

print(x)

مشاهده در ادیتور

طبق توضیح منبع، خروجی این کد زاویه متناظر هر مقدار سینوس در آرایه است.

محاسبه وتر مثلث قائم با np.hypot

در بخش آخر منبع، سراغ محاسبه وتر مثلث قائم با فرمول فیثاغورس رفته است.

در متن نوشته شده NumPy تابع hypot() را برای این کار فراهم کرده است.

این تابع دو مقدار را به عنوان ضلع های عمود و افقی می گیرد و وتر را برمی گرداند.

import numpy as np

base = 3
perp = 4

x = np.hypot(base, perp)

print(x)

مشاهده در ادیتور

همان طور که در منبع آمده، برای اضلاع 3 و 4 مقدار وتر برابر 5 می شود.

اگر بخواهی قبل از این، GCD را مرور کنی، می توانی به صفحه بزرگترین مقسوم علیه مشترک با ufunc برگردی.

تمرین گام به گام توابع مثلثاتی با ufunc

برای تمرین نکاتی که منبع درباره توابع مثلثاتی با ufunc گفته، این کارها را انجام بده:

  1. یک مقدار ساده مثل π/2 را با np.sin() امتحان کن.
  2. آرایه ای از چند زاویه بساز و با np.deg2rad() آن ها را تبدیل کن.
  3. چند مقدار سینوس بساز و زاویه شان را با np.arcsin() حساب کن.

با همین سه مرحله، توابع مثلثاتی با ufunc در NumPy برایت خیلی قابل لمس تر می شوند.

جمع بندی سریع توابع مثلثاتی با ufunc

در منبع این بخش، چند نکته کلیدی درباره توابع مثلثاتی با ufunc در NumPy دیده می شود:

  • توابع sin()، cos() و tan() در NumPy ufunc هستند و با رادیان کار می کنند.
  • با np.deg2rad() و np.rad2deg() تبدیل بین درجه و رادیان انجام می شود.
  • توابع arcsin()، arccos() و arctan() زاویه را از روی مقدار مثلثاتی برمی گردانند.
  • تابع np.hypot() با استفاده از قضیه فیثاغورس طول وتر را محاسبه می کند.
  • همه مثال ها در منبع با آرایه های NumPy نوشته شده اند و در ادیتور W3Schools قابل اجرا هستند.