كيفية تجميع المتغيرات في بايثون باستخدام numpy.digitize()
في كثير من الأحيان قد تكون مهتمًا بوضع قيم المتغير في “صناديق” في بايثون.
لحسن الحظ، من السهل القيام بذلك باستخدام الدالة numpy.digitize() ، والتي تستخدم الصيغة التالية:
numpy.digitize(x, bins, right=False)
ذهب:
- x: مجموعة إلى مجموعة.
- الصناديق: مجموعة من الصناديق.
- يمين: يشير إلى ما إذا كانت الفواصل الزمنية تتضمن الحافة اليمنى أو اليسرى للسلة. بشكل افتراضي، لا يتضمن الفاصل الزمني الحافة اليمنى.
يوضح هذا البرنامج التعليمي عدة أمثلة للاستخدام العملي لهذه الوظيفة.
مثال 1: ضع جميع القيم في سلتين
يوضح الكود التالي كيفية وضع قيم المصفوفة في سلتين:
- 0 إذا س <20
- 1 إذا س ≥ 20
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[20]) array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])
مثال 2: ضع جميع القيم في ثلاث صناديق
يوضح الكود التالي كيفية وضع قيم المصفوفة في ثلاث صناديق:
- 0 إذا س <10
- 1 إذا 10 ≥ س <20
- 2 إذا س ≥ 20
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])
لاحظ أنه إذا حددنا right= True فسيتم وضع القيم في الخانات التالية:
- 0 إذا س ≥ 10
- 1 إذا 10 < س ≥ 20
- 2 إذا س > 20
سيتضمن كل فاصل زمني الحافة اليمنى للسلة. هذا هو ما يبدو:
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20], right= True ) array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])
مثال 3: ضع جميع القيم في أربع صناديق
يوضح الكود التالي كيفية وضع قيم المصفوفة في ثلاث صناديق:
- 0 إذا س <10
- 1 إذا 10 ≥ س <20
- 2 إذا 20 ≥ س < 30
- 3 إذا س ≥ 30
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20, 30]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])
مثال 4: حساب تكرار كل سلة
دالة NumPy مفيدة أخرى تكمل الدالة numpy.digitize() وهي الدالة numpy.bincount() ، التي تحسب ترددات كل حاوية.
الكود التالي يوضح كيفية وضع قيم المصفوفة في ثلاث مجموعات، ثم حساب تكرار كل مجموعة:
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins bin_data = np. digitize (data, bins=[10, 20]) #view binned data bin_data array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2]) #count frequency of each bin n.p. bincount (bin_data) array([4, 2, 5])
يخبرنا الإخراج أن:
- يحتوي الصندوق “0” على 4 قيم بيانات.
- يحتوي الصندوق “1” على قيمتين للبيانات.
- يحتوي الصندوق “2” على 5 قيم بيانات.
ابحث عن المزيد من دروس بايثون هنا .