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

পাইথন: ম্যাট্রিক্স থেকে নাম্বার ধারণকারী সারি সরানো

নেস্টেড লিস্ট (ম্যাট্রিক্স) থেকে যেসব সারিতে কোনো ইন্টিজার (নাম্বার) আছে, সেগুলো সরিয়ে শুধু স্ট্রিং-ওনلی সারি রাখার জন্য isinstance(), any() এবং লিস্ট কম্প্রিহেনশন ব্যবহার করা হয়।

উদাহরণ


my_list = [[14, 'Pyt', 'fun'], ['Pyt', 'is', 'best'], [23, 51], ['Pyt', 'fun']]
print("মূল ম্যাট্রিক্স:")
for row in my_list:
    print("  ", row)

# ফিল্টার: সারিতে কোনো int নেই এমন সারি রাখা
filtered = [
    row for row in my_list 
    if not any(isinstance(x, int) for x in row)
]

print("\nনাম্বার-ফ্রি সারিগুলো:")
for row in filtered:
    print("  ", row)

আউটপুট


মূল ম্যাট্রিক্স:
   [14, 'Pyt', 'fun']
   ['Pyt', 'is', 'best']
   [23, 51]
   ['Pyt', 'fun']

নাম্বার-ফ্রি সারিগুলো:
   ['Pyt', 'is', 'best']
   ['Pyt', 'fun']

ব্যাখ্যা

  • isinstance(x, int) — x ইন্টিজার কিনা চেক করে
  • any(...) — সারিতে কমপক্ষে একটা ইন্টিজার আছে কিনা
  • not any(...) — ইন্টিজার নেই এমন সারি নির্বাচন

বিকল্প: all() ব্যবহার


# সব এলিমেন্ট non-int হলে রাখা
filtered = [row for row in my_list if all(not isinstance(x, int) for x in row)]

সব নাম্বারিক টাইপ (int, float, bool) বাদ দিতে


import numbers

filtered = [
    row for row in my_list 
    if not any(isinstance(x, numbers.Number) and not isinstance(x, bool) for x in row)
]
# bool হল int-এর সাবক্লাস, তাই আলাদা চেক

Pandas-এ প্রয়োগ


import pandas as pd
df = pd.DataFrame(my_list)
# যেকোনো কলামে numeric ডেটা আছে এমন সারি ড্রপ
numeric_cols = df.select_dtypes(include='number').columns
filtered_df = df[~df[numeric_cols].notna().any(axis=1)]
  1. পাইথনে অপ্রয়োজনীয় ক্যারেক্টার থাকা স্ট্রিং সরানো

  2. পাইথন প্রোগ্রাম: নির্দিষ্ট পেয়ার সমRaport সহ সারি ফিল্টার করা

  3. নির্দিষ্ট দৈর্ঘ্যের টাপল রিমুভ করার পাইথন প্রোগ্রাম

  4. পাইথনে দেয়া রেঞ্জের সাথে নম্বরের লিস্ট তৈরি করুন