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


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.