سؤال

لدي بعض بيانات الأسهم بناءً على قيم الإغلاق اليومية.أحتاج إلى أن أكون قادرًا على إدراج هذه القيم في قائمة بايثون والحصول على متوسط ​​لآخر 30 عملية إغلاق.هل توجد مكتبة بايثون تقوم بذلك؟

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

المحلول

هل فكرت الباندا؟تعتمد على numpy ويمكنه ربط الطوابع الزمنية تلقائيًا ببياناتك، وتجاهل أي تواريخ غير معروفة طالما قمت بملئها numpy.nan.كما يقدم أيضًا بعض الرسوم البيانية القوية عبر matplotlib.

في الأساس تم تصميمه للتحليل المالي في بيثون.

نصائح أخرى

في لغة بايثون الخالصة، وجود بياناتك في قائمة بايثون a, ، يمكنك أن تفعل

median = sum(sorted(a[-30:])[14:16]) / 2.0

(وهذا يفترض a يحتوي على 30 عنصرًا على الأقل.)

باستخدام حزمة NumPy، يمكنك استخدام

median = numpy.median(a[-30:])

أليس الوسيط مجرد القيمة الوسطى في نطاق مفروز؟

لذا، على افتراض أن قائمتك هي stock_data:

last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]

الآن تحتاج فقط إلى العثور على الأخطاء وإصلاحها وكذلك التعامل مع حالة stock_data كونها أقل من 30 عنصرا ...

دعونا نحاول ذلك هنا قليلاً:

def rolling_median(data, window):
    if len(data) < window:
       subject = data[:]
    else:
       subject = data[-30:]
    return sorted(subject)[len(subject)/2]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top