مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

۶۴ مطلب با موضوع «آموزش دروس» ثبت شده است

Pandas vs NumPy | Top 7 Differences You Should Know

مقایسه عملکرد NumPy و Pandas در پروژه‌های بزرگ به عوامل متعددی بستگی دارد. در اینجا به چند نکته کلیدی در این زمینه اشاره می‌شود:

🔴🔴🔴 ۱. سرعت و کارایی

- NumPy:
  - عملکرد بالا: به دلیل استفاده از آرایه‌های چندبعدی و بهینه‌سازی شده برای عملیات عددی، NumPy معمولاً سرعت بسیار بالاتری در محاسبات ریاضی دارد.
  - عملیات برداری: می‌توان با استفاده از عملیات‌های برداری به جای حلقه‌های تکرار، محاسبات را به طرز چشمگیری تسریع کرد.

- Pandas:
  - کاربردی‌تر اما کندتر: Pandas برای کار با داده‌های ساختارمند طراحی شده و به همین دلیل ممکن است در مقایسه با NumPy در برخی عملیات‌ها کندتر باشد. با این حال، قابلیت‌های بیشتری برای تجزیه و تحلیل داده‌ها و کار با داده‌های گم‌شده ارائه می‌دهد.
  - بهینه‌سازی برای داده‌های جدولی: در پروژه‌های بزرگ که داده‌های جدولی دارند، Pandas به خوبی عمل می‌کند و می‌تواند بهینه‌سازی‌هایی انجام دهد که در NumPy ممکن است پیچیده‌تر باشد.

🔴🔴🔴 ۲. مدیریت داده‌ها

- NumPy:
  - مناسب برای داده‌های عددی و محاسباتی. اگر داده‌ها به صورت آرایه‌های عددی ساده باشند، NumPy بهترین گزینه است.

- Pandas:
  - توانایی مدیریت داده‌های پیچیده و مختلط. اگر پروژه شامل داده‌های مختلف (عدد، متن، تاریخ) باشد، Pandas به دلیل قابلیت‌های قوی‌اش برای پاک‌سازی، گروه‌بندی و تجزیه و تحلیل داده‌ها مناسب‌تر است.

🔴🔴🔴 ۳. استفاده از حافظه

- NumPy:
  - به طور کلی از نظر مصرف حافظه بهینه‌تر است، زیرا آرایه‌های NumPy از نوع داده‌های یکسان استفاده می‌کنند و این باعث کاهش overhead حافظه می‌شود.

- Pandas:
  - مصرف حافظه ممکن است بیشتر باشد، به ویژه برای داده‌های بزرگ و مختلط، زیرا هر ستون در یک DataFrame می‌تواند نوع داده متفاوتی داشته باشد.

🔴🔴🔴 ۴. مقیاس‌پذیری

- NumPy:
  - برای محاسبات عددی در مقیاس بزرگ به خوبی عمل می‌کند، اما در مدیریت داده‌های بزرگتر از آرایه‌ها ممکن است محدودیت‌هایی وجود داشته باشد.

- Pandas:
  - می‌تواند به خوبی با داده‌های بزرگ و پیچیده کار کند، اما برای داده‌های بسیار بزرگ (مثلاً در حد ترابایت) ممکن است نیاز به استفاده از ابزارهای دیگر مانند Dask یا PySpark باشد.

🔴🔴🔴 نتیجه‌گیری

در پروژه‌های بزرگ:

- اگر تمرکز بر روی محاسبات عددی و کار با آرایه‌های عددی باشد، NumPy گزینه بهتری است.
- اگر پروژه شامل تجزیه و تحلیل داده‌ها و مدیریت داده‌های پیچیده باشد، Pandas انتخاب مناسبی خواهد بود.

به طور کلی، در بسیاری از پروژه‌ها از هر دو کتابخانه به صورت مکمل استفاده می‌شود.

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۵۳
سعید دامغانیان

NumPy و Pandas هر دو کتابخانه‌های مهمی در پایتون هستند که برای کار با داده‌ها و تحلیل علمی استفاده می‌شوند. با این حال، هرکدام هدف و ویژگی‌های خاص خود را دارند. در ادامه به تفاوت‌های اصلی بین NumPy و Pandas می‌پردازم:

🔴🔴🔴 ۱. هدف اصلی

- NumPy:
  - تمرکز بر روی محاسبات عددی و کار با آرایه‌های چندبعدی.
  - ارائه توابع ریاضی و عملیات‌های خطی به صورت بهینه.

- Pandas:
  - طراحی شده برای تجزیه و تحلیل داده‌ها و مدیریت داده‌های ساختارمند.
  - فراهم آوردن ابزارهایی برای کار با داده‌های جدولی (DataFrames) و سری‌ها (Series).

🔴🔴🔴 ۲. نوع داده

- NumPy:
  - نوع داده اصلی ndarray است که برای آرایه‌های چندبعدی استفاده می‌شود.
  - مناسب برای داده‌های عددی و علمی.

- Pandas:
  - نوع داده اصلی DataFrame برای داده‌های جدولی و Series برای داده‌های یک‌بعدی است.
  - مناسب برای داده‌های مختلط، شامل متن، تاریخ و عدد.

🔴🔴🔴 ۳. امکانات

- NumPy:
  - توابع ریاضی، آمار و جبر خطی.
  - پشتیبانی از عملیات‌های عددی سریع و کارآمد.

- Pandas:
  - امکانات پیشرفته برای پاک‌سازی داده‌ها، گروه‌بندی، ادغام و فیلتر کردن داده‌ها.
  - قابلیت کار با داده‌های گم‌شده و تغییر شکل داده‌ها.

🔴🔴🔴 ۴. سهولت استفاده

- NumPy:
  - مناسب برای کارهای عددی و محاسباتی، اما ممکن است برای مدیریت داده‌های پیچیده چالش‌بر‌انگیز باشد.

- Pandas:
  - بسیار کاربرپسند و مناسب برای تجزیه و تحلیل داده‌ها، با امکاناتی برای راحتی در کار با داده‌ها.

🔴🔴🔴 ۵. عملکرد

- NumPy:
  - بهینه‌سازی شده برای سرعت در محاسبات عددی با آرایه‌ها.

- Pandas:
  - ممکن است در برخی موارد کندتر باشد، زیرا امکانات بیشتری را ارائه می‌دهد و تمرکز بیشتری بر روی داده‌های پیچیده دارد.

🔴🔴🔴 نتیجه‌گیری

NumPy و Pandas در کنار هم ابزارهای قدرتمندی را برای کار با داده‌ها فراهم می‌کنند. برای محاسبات عددی و علمی، NumPy انتخاب بهتری است، در حالی که برای تجزیه و تحلیل داده‌ها و مدیریت داده‌های ساختارمند، Pandas مناسب‌تر است. به طور کلی، در پروژه‌های داده‌کاوی و علم داده، معمولاً هر دو کتابخانه به صورت همزمان استفاده می‌شوند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۵۲
سعید دامغانیان

برای نوشتن برنامه‌ای به زبان پایتون که آی‌پی کاربر را نشان دهد، می‌توانیم از کتابخانه requests برای دریافت اطلاعات آی‌پی از یک سرویس وب استفاده کنیم. در اینجا یک مثال ساده آورده شده است:

🔵🔵🔵 کد برنامه

 

import requests

def get_ip():
    try:
        response = requests.get('https://api.ipify.org?format=json')
        response.raise_for_status()  # بررسی وضعیت پاسخ
        data = response.json()
        return data['ip']
    except requests.RequestException as e:
        return f"Error: {e}"

if __name__ == "__main__":
    user_ip = get_ip()
    print(f"User Ip is: {user_ip}")

🔵🔵🔵 توضیحات کد

1. وارد کردن کتابخانه: از کتابخانه requests برای ارسال درخواست HTTP استفاده می‌کنیم.
2. **تابع get_ip**:
   - با استفاده از requests.get به API ipify درخواست ارسال می‌کند.
   - پاسخ را به فرمت JSON تبدیل کرده و آی‌پی را استخراج می‌کند.
   - در صورت بروز خطا، پیام خطا را برمی‌گرداند.
3. اجرای برنامه: در بخش اصلی برنامه، تابع get_ip فراخوانی شده و آی‌پی کاربر چاپ می‌شود.

🔵🔵🔵 نحوه اجرا

1. اطمینان حاصل کنید که کتابخانه requests نصب شده باشد. اگر نصب نیست، می‌توانید با دستور زیر آن را نصب کنید:

  
   pip install requests
   

2. سپس کد را در یک فایل با پسوند .py ذخیره کرده و اجرا کنید:

  
   python your_script.py
   

با اجرای برنامه، آی‌پی عمومی کاربر نمایش داده می‌شود.

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۴۹
سعید دامغانیان

برای برنامه‌نویسی با پایتون، نیازمندی‌های سیستم به صورت کلی به نوع پروژه و کاربردهای خاص شما بستگی دارد. با این حال، در زیر مشخصات سیستم پیشنهادی برای برنامه‌نویسی با پایتون آورده شده است:

🔴 مشخصات حداقلی

- پردازنده (CPU): 
  - حداقل: پردازنده دو هسته‌ای (Dual-core)
  - پیشنهادی: پردازنده چهار هسته‌ای (Quad-core) یا بالاتر

- حافظه (RAM): 
  - حداقل: 4 گیگابایت
  - پیشنهادی: 8 گیگابایت یا بیشتر

- فضای ذخیره‌سازی: 
  - حداقل: 20 گیگابایت فضای خالی
  - پیشنهادی: SSD با ظرفیت 256 گیگابایت یا بیشتر برای سرعت بهتر

- سیستم عامل:
  - ویندوز 10 یا 11
  - macOS (نسخه‌های جدید)
  - توزیع‌های لینوکس (Ubuntu، Fedora و ...)

🔴 مشخصات پیشنهادی برای پروژه‌های بزرگتر یا هوش مصنوعی

- پردازنده (CPU): 
  - حداقل: پردازنده چهار هسته‌ای
  - پیشنهادی: پردازنده‌های چند هسته‌ای (مثل Intel i5/i7 یا AMD Ryzen 5/7)

- حافظه (RAM): 
  - حداقل: 8 گیگابایت
  - پیشنهادی: 16 گیگابایت یا بیشتر (به ویژه برای پروژه‌های بزرگ داده یا یادگیری ماشین)

- فضای ذخیره‌سازی: 
  - SSD با ظرفیت 512 گیگابایت یا بیشتر برای ذخیره‌سازی سریع داده‌ها و پروژه‌ها.

- کارت گرافیک (GPU): 
  - برای پروژه‌های یادگیری عمیق، یک کارت گرافیک با قابلیت CUDA (مثل NVIDIA GeForce) می‌تواند بسیار مفید باشد.

🔴 نرم‌افزارها و ابزارهای لازم

- نصب پایتون: نسخه 3.x (آخرین نسخه پایدار)
- مدیر بسته: pip (به طور پیش‌فرض با پایتون نصب می‌شود)
- ویرایشگر کد یا IDE:
  - ویرایشگرهای سبک: Visual Studio Code، Sublime Text
  - IDEهای کامل: PyCharm، Jupyter Notebook (برای داده‌کاوی و یادگیری ماشین)

🔴🔴🔴 نتیجه‌گیری

با توجه به نوع پروژه و نیازهای خاص خود، می‌توانید مشخصات سیستم را تنظیم کنید. برای پروژه‌های ساده، مشخصات حداقلی کافی است، اما برای پروژه‌های پیچیده‌تر، داشتن سخت‌افزار قوی‌تر می‌تواند به بهبود عملکرد و کارایی کمک کند.

 

Desktop Computer - Editmicro

۲ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۳۹
سعید دامغانیان

اعداد فیبوناچی اعدادی هستند که به صورت سری مقابل نوشته می شوند. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
در علم ریاضیات رابطه ساخت عدد n ام با استفاده از دو عدد قبل از رابطه زیر بدست می‌آید:

 

Fn = Fn-1 + Fn-2

with seed values : F0 = 0 and F1 = 1.

 

می خواهیم با استفاده از حلقه while ده عدد از سری فیبوناچی را چاپ کنیم.

n = 10
num1 = 0
num2 = 1
next_number = num2  
count = 1

while count <= n:
    print(next_number, end=" ")
    count += 1
    num1, num2 = num2, next_number
    next_number = num1 + num2
print()

خروجی:

1 2 3 5 8 13 21 34 55 89 

و حالا به صورت بازگشتی کدی مینویسیم که یک عدد فیبوناچی مورد نظر (که در اینجا عدد شماره 9 است) را تولید کند:

def Fibonacci(n):

    # Check if input is 0 then it will
    # print incorrect input
    if n < 0:
        print("Incorrect input")

    # Check if n is 0
    # then it will return 0
    elif n == 0:
        return 0

    # Check if n is 1,2
    # it will return 1
    elif n == 1 or n == 2:
        return 1

    else:
        return Fibonacci(n-1) + Fibonacci(n-2)


# Driver Program
print(Fibonacci(9))

 

خروجی:

34

کد بهینه شده سری اعداد فیبوناچی:

# Function for nth fibonacci number 
def fibonacci(n):
    a = 0
    b = 1
    
    # Check is n is less
    # than 0
    if n < 0:
        print("Incorrect input")
        
    # Check is n is equal
    # to 0
    elif n == 0:
        return 0
      
    # Check if n is equal to 1
    elif n == 1:
        return b
    else:
        for i in range(1, n):
            c = a + b
            a = b
            b = c
        return b

# Driver Program
print(fibonacci(9))

 

۲ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۰۳ ، ۱۵:۴۸
سعید دامغانیان

برنامه زیر یک عدد از ورودی خوانده و در خزوجی چاپ می کند که آیا آن عدد اول است یا خیر!

 

num = int(input("Please Enter A Number: "))
# Negative numbers, 0 and 1 are not primes
if num > 1:
  
    # Iterate from 2 to n // 2
    for i in range(2, (num//2)+1):
      
        # If num is divisible by any number between
        # 2 and n / 2, it is not prime
        if (num % i) == 0:
            print(num, "is not a prime number")
            break
    else:
        print(num, "is a prime number")
else:
    print(num, "is not a prime number")


 

۱ نظر موافقین ۰ مخالفین ۰ ۲۸ شهریور ۰۳ ، ۲۱:۳۳
سعید دامغانیان

در سالیان اخیر، زبان برنامه نویسی پایتون محبوبیت زیادی میان ما توسعه دهندگان وب پیدا کرده است. تنوع فریم ورک ها، قابلیت کراس پلتفرم و سینتکس ساده، روزانه بر محبوبیت زبان پایتون می‌افزاید. در این مقاله، در مورد فریم ورک های پایتون برای توسعه وب، اینکه کدام فریم ورک برای کدام پروژه بهتر است، و مزایا و معایب این زبان در وب صحبت خواهیم کرد.

۲ نظر موافقین ۰ مخالفین ۰ ۲۸ شهریور ۰۳ ، ۲۱:۱۰
سعید دامغانیان

Tuple ها به لیستها بسیار شبیه هستند، به جز اینکه Tuple ها غیرقابل تغییر هستند .
همچنین، آنها با استفاده از پرانتز، به جای براکت مربعی، ایجاد می شوند.
مثال:

words = ("spam", "eggs", "sausages",)

شما می توانید با مقادیر خود در مقیاس به همان اندازه که با لیست ها دسترسی داشتید دسترسی پیدا کنید:

print(words[0])

تلاش برای تخصیص یک مقدار در یک Tuple، یک TypeError را ایجاد می کند.

words[1] = "cheese"

خروجی:

>>>
TypeError: 'tuple' object does not support item assignment
>>>

نکته:مانند لیست ها و dictionary ها، tuple ها را می توان در داخل یکدیگر قرار داد.

tuple ها را می توان فقط با جدا کردن مقادیر با کاما و بدون پرانتز ایجاد کرد.
مثال:

my_tuple = "one", "two", "three"
print(my_tuple[0])

خروجی:

>>>
one
>>>

یک tuple خالی با استفاده از یک جفت پرانتز خالی ایجاد می شود.

tpl = ()

نکته:tuple ها سریعتر از لیست ها هستند اما قابل تغییر نیستند.

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ شهریور ۰۳ ، ۲۱:۰۴
سعید دامغانیان

کد زیر یک عدد  رو از ورودی میگیره و جمله خواسته شده  سری فیبونانچی رو چاپ میکنه. دقت کنید که به صورت بازگشتی نوشته شده. سعی کنید روش غیر بازگشتی همین کد رو شما بنویسید.


#Programmer : Saeed Damghanian

#Web : Pyschool.blg.ir


# Function for nth Fibonacci number 

  

def Fibonacci(n): 

    if n<0: 

        print("Incorrect input") 

    # First Fibonacci number is 0 

    elif n==1: 

        return 0

    # Second Fibonacci number is 1 

    elif n==2: 

        return 1

    else: 

        return Fibonacci(n-1)+Fibonacci(n-2) 

  

# Driver Program 


n=int(input("Pleas Enter n: "))  

print(Fibonacci(n)) 

  


#------------Telegram: @Ghoghnous_Iran-----------------------




b444745_Untitled.png

۲ نظر موافقین ۰ مخالفین ۰ ۳۰ تیر ۹۸ ، ۰۶:۳۹
سعید دامغانیان

برنامه ای نوشتم که تعدادی عدد رو داخل خود برنامه تعریف کرده و ســــپس با روش مرتب سازی حبابی مرتبشون کنه. حالا شما سعی کنید برنامه ای بنویسید که همین اعداد رو از ورودی گرفته و مرتب کنه. میتونید یک شرط بگذارید که اگه کاربر کاراکتر خاصی رو وارد کرد به معنای پایان اعداد  وارد شده باشه. یا میتونید اعداد رو یکجا بگیرید و پردازش کنید. اگه سوالی بود در خدمت هستم.


#Programmer : Saeed Damghanian

#Web : Pyschool.blg.ir


def bubbleSort(arr):

    n = len(arr)

 

    # Traverse through all array elements

    for i in range(n):

 

        # Last i elements are already in place

        for j in range(0, n-i-1):

 

            # traverse the array from 0 to n-i-1

            # Swap if the element found is greater

            # than the next element

            if arr[j] > arr[j+1] :

                arr[j], arr[j+1] = arr[j+1], arr[j]

 

# Driver code to test above

arr = [64, 34, 25, 12, 22, 11, 90]

 

bubbleSort(arr)

 

print ("Sorted array is:")

for i in range(len(arr)):

    print ("%d" %arr[i])


#------------Telegram: @Ghoghnous_Iran-----------------------



a887838_Untitled.png


۰ نظر موافقین ۰ مخالفین ۰ ۳۰ تیر ۹۸ ، ۰۶:۲۸
سعید دامغانیان