سؤال

وكقيمة بديل للآخر في عملية مع المصفوفات، أو كيفية البحث ضمن مجموعة واستبدال قيمة من جانب آخر

وعلى سبيل المثال:

array ([[NaN, 1., 1., 1., 1., 1., 1.]
       [1., NaN, 1., 1., 1., 1., 1.]
       [1., 1., NaN, 1., 1., 1., 1.]
       [1., 1., 1., NaN, 1., 1., 1.]
       [1., 1., 1., 1., NaN, 1., 1.]
       [1., 1., 1., 1., 1., NaN, 1.]
       [1., 1., 1., 1., 1., 1., NaN]])

وحيث يمكن أن يحل محل نان من 0. شكرا لأي رد

هل كانت مفيدة؟

المحلول

هل يمكن أن تفعل هذا:

import numpy as np
x=np.array([[np.NaN, 1., 1., 1., 1., 1., 1.],[1., np.NaN, 1., 1., 1., 1., 1.],[1., 1., np.NaN, 1., 1., 1., 1.], [1., 1., 1., np.NaN, 1., 1., 1.], [1., 1., 1., 1., np.NaN, 1., 1.],[1., 1., 1., 1., 1., np.NaN, 1.], [1., 1., 1., 1., 1., 1., np.NaN]])
x[np.isnan(x)]=0

وnp.isnan(x) إرجاع مجموعة المنطقية التي True أينما x هو NaN. x[ boolean_array ] = 0 توظف الفهرسة يتوهم لتعيين قيمة 0 أينما مجموعة المنطقية هي True.

لمقدمة كبيرة لفهرسة الهوى وأكثر من ذلك بكثير، انظر href="http://www.tramy.us/" أيضا numpybook و.

نصائح أخرى

وهذه الأيام هناك وظيفة خاصة:

a = numpy.nan_to_num(a)

وهنا هو المثال مجموعة في السؤال:

import numpy as np
a = np.where(np.eye(7), np.nan, 1)

ويمكنك إما استخدام numpy.where و numpy.isnan وظائف لإنشاء مجموعة جديدة b:

b = np.where(np.isnan(a), 0, a)

وأو استخدام وظيفة في نفس المكان لمباشرة تعديل مجموعة a:

np.place(a, np.isnan(a), 0)  # returns None
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top