একটি নম্পি.অ্যান্ডাররে সমস্ত সংখ্যক সারি কীভাবে সরিয়ে ফেলা যায় যাতে অ-সংখ্যাসূচক মান রয়েছে


95

মূলত, আমি কিছু তথ্য বিশ্লেষণ করছি। আমি একটি ডামাসেটে নাম্পি.আন্ডারে হিসাবে পড়েছি এবং কিছু মান অনুপস্থিত (কেবল সেখানে না থাকা, সত্তা NaNবা স্ট্রিং লিখিত হয়ে " NA" রয়েছে)।

আমি এই জাতীয় কোনও এন্ট্রি সহ সমস্ত সারি পরিষ্কার করতে চাই। আমি কীভাবে নাম্পার নাদারের সাথে এটি করব?

উত্তর:


164
>>> a = np.array([[1,2,3], [4,5,np.nan], [7,8,9]])
array([[  1.,   2.,   3.],
       [  4.,   5.,  nan],
       [  7.,   8.,   9.]])

>>> a[~np.isnan(a).any(axis=1)]
array([[ 1.,  2.,  3.],
       [ 7.,  8.,  9.]])

এবং এটিকে পুনরায় নিয়োগ করুন a।

ব্যাখ্যা: যেখানে , অন্যত্র np.isnan(a)একই ধরণের অ্যারে প্রদান করে। সম্পূর্ণ সারিগুলিতে একটি লজিকাল অপারেশন করে একটি অ্যারে হ্রাস করে , উল্টে দেয় এবং বন্ধনীগুলির মধ্যে থাকা মূল অ্যারে থেকে কেবল সারিগুলি বেছে নেয় ।TrueNaNFalse.any(axis=1)m*nnor~True/Falsea[ ]True


11
np.isfiniteএই ক্ষেত্রে এছাড়াও দরকারী, পাশাপাশি যখন আপনি ±Infমানগুলি থেকে মুক্তি পেতে চান । এটি ~কেবলমাত্র সীমাবদ্ধ বাস্তবের জন্য সত্য প্রত্যাবর্তনের কারণে এটির প্রয়োজন হয় না ।
— nnot101

7
@ naught101 আপনার এও পরিবর্তন anyকরতে হবে all। যেহেতু আপনি "সমস্ত ন্যান নয়" যেখানে সারি নির্বাচন করার পরিবর্তে "সমস্ত সীমাবদ্ধ" সারি নির্বাচন করতে চান।
— আনানফায়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.