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

পাইথনে নির্দিষ্ট অক্ষ অঙ্গে 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, 100, np.nan]])

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

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, 100, np.nan]])

# অ্যারে প্রদর্শন
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. 100. nan]]
আমাদের অ্যারের ডাইমেনশন...
 2
আমাদের অ্যারে অবজেক্টের ডাটা টাইপ...
 float64
ডিসক্রিট ডিফারেন্স..
 [[ 5. 15. 35.]
 [ 7. 13. nan]]

ব্যাখ্যা

axis=1 মানে কলাম ডিরেকশন (হরিজন্টাল) ডিফারেন্স।

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

পূর্ববর্তী আর্টিকেলের সাথে পার্থক্য: এখানে তৃতীয় কলামে ১০০ আছে (NaN নয়), তাই দ্বিতীয় ডিফারেন্স ১৩ পাওয়া গেছে। চতুর্থ ডিফারেন্স NaN কেননা ১২০-১০০=২০ কিন্তু এখানে চতুর্থ এলিমেন্ট NaN।

  1. পাইথনে NaNকে শূন্য বিবেচনা করে অক্ষ ১ অনুযায়ী ক্রমাগত যোগফল (Cumulative Sum) বের করুন

  2. পাইথনে NaNকে শূন্য বিবেচনা করে অক্ষ ০ অনুযায়ী ক্রমাগত যোগফল (Cumulative Sum) বের করুন

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

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