কম্পিউটার টিউটোরিয়াল

পাইথনে অক্ষ ১ অঙ্গে n-তম ডিসক্রিট ডিফারেন্স বের করা

n-তম ডিসক্রিট ডিফারেন্স বের করতে পাইথনে numpy.diff() মেথড ব্যবহার করুন। প্রথম ডিফারেন্স দিয়ে দেওয়া হয়: out[i] = a[i+1] - a[i] দেওয়া অক্ষ অনুযায়ী, উচ্চতর ডিফারেন্স রিকারসিভলি diff ব্যবহার করে ক্যালকুলেট করা হয়। diff() মেথড n-তম ডিফারেন্স রিটার্ন করে। আউটপুটের শেপ ইনপুট a-এর মতোই থাকে শুধু নির্দিষ্ট অক্ষের ডাইমেনশন n কমানো হয়। আউটপুটের টাইপ a-এর যেকোনো দুটো এলিমেন্টের ডিফারেন্সের টাইপের মতো, অধিকাংশ কেসে a-র টাইপের সমান। এক্সসেপশন: datetime64 রেজাল্ট timedelta64 আউটপুট আর্নে।

প্যারামিটারها

  • a: ইনপুট অ্যারে।
  • n: কতবার ভ্যালুগুলো ডিফারেন্স করা হবে। শূন্য হলে ইনপুট-Unis রিটার্ন। ডিফল্ট ১।
  • axis: যে অক্ষ অনুযায়ী ডিফারেন্স নেওয়া হবে। ডিফল্ট লাস্ট অক্ষ।
  • prepend/append: ডিফারেন্স করার আগে ইনপুট অ্যারেতে প্রিপেন্ড বা অ্যাপেন্ড করার ভ্যালু।

ধাপসমূহ

১. প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন

import numpy as np

২. array() মেথড ব্যবহার করে NaN সহ NumPy অ্যারে তৈরি করুন

arr = np.array([[10, 15, 30, 65], [80, 87, np.nan, 120]])

৩. অ্যারে প্রদর্শন করুন

print("আমাদের অ্যারে...\n", arr)

৪. ডাইমেনশন চেক করুন

print("\nআমাদের অ্যারের ডাইমেনশন...\n", arr.ndim)

৫. ডাটা টাইপ পান

print("\nআমাদের অ্যারে অবজেক্টের ডাটা টাইপ...\n", arr.dtype)

৬. অক্ষ ১ অঙ্গে ডিসক্রিট ডিফারেন্স বের করুন

print("\nডিসক্রিট ডিফারেন্স..\n", np.diff(arr, axis=1))

সম্পূর্ণ উদাহরণ

import numpy as np

# array() মেথড ব্যবহার করে NaN সহ NumPy অ্যারে তৈরি
arr = np.array([[10, 15, 30, 65], [80, 87, np.nan, 120]])

# অ্যারে প্রদর্শন
print("আমাদের অ্যারে...\n", arr)

# ডাইমেনশন চেক
print("\nআমাদের অ্যারের ডাইমেনশন...\n", arr.ndim)

# ডাটা টাইপ
print("\nআমাদের অ্যারে অবজেক্টের ডাটা টাইপ...\n", arr.dtype)

# অক্ষ ১ অঙ্গে ডিসক্রিট ডিফারেন্স
print("\nডিসক্রিট ডিফারেন্স..\n", np.diff(arr, axis=1))

আউটপুট

আমাদের অ্যারে...
 [[ 10. 15. 30. 65.]
 [ 80. 87. nan 120.]]
আমাদের অ্যারের ডাইমেনশন...
 2
আমাদের অ্যারে অবজেক্টের ডাটা টাইপ...
 float64
ডিসক্রিট ডিফারেন্স..
 [[ 5. 15. 35.]
 [ 7. nan nan]]

ব্যাখ্যা

axis=1 মানে কলাম ডিরেকশন (হরিজন্টাল) ডিফারেন্স। প্রতিটি রোর জন্য: (দ্বিতীয়-প্রথম), (তৃতীয়-দ্বিতীয়), (চতুর্থ-তৃতীয়)।

  • রো ০: 15-10=5, 30-15=15, 65-30=35
  • রো ১: 87-80=7, NaN-87=NaN, 120-NaN=NaN

NaN-সহ যেকোনো অপারেশনের ফলাফল NaN হয়।

  1. পাইথনে অনসাইনড ইন্টিজার অ্যারের জন্য n-তম ডিসক্রিট ডিফারেন্স (Discrete Difference) গণনা করুন

  2. পাইথনে N-ডাইমেনশনাল অ্যারের গ্রেডিয়েন্ট (Gradient) অক্ষ ১ অনুযায়ী বের করুন

  3. পাইথনে N-ডাইমেনশনাল অ্যারের অক্ষ ০-র ওপর গ্রেডিয়েন্ট বের করুন

  4. পাইথনে অক্ষ ০-র ওপর n-তম ডিসক্রিট ডিফারেন্স বের করুন