كيفية تطبيع القيم في مجموعة numpy بين 0 و 1


لتطبيع قيم مصفوفة NumPy بين 0 و1، يمكنك استخدام إحدى الطرق التالية:

الطريقة الأولى: استخدم NumPy

 import numpy as np

x_norm = (x-np. min (x))/(np. max (x)-np. min (x))

الطريقة الثانية: استخدم Sklearn

 from sklearn import preprocessing as pre

x = x. reshape (-1, 1)

x_norm = pre. MinMaxScaler (). fit_transform (x)

تفترض كلتا الطريقتين أن x هو اسم مصفوفة NumPy التي تريد تطبيعها.

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.

مثال 1: تطبيع القيم باستخدام NumPy

لنفترض أن لدينا مجموعة NumPy التالية:

 import numpy as np

#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

يمكننا استخدام الكود التالي لتطبيع كل قيمة في المصفوفة بين 0 و 1:

 #normalize all values to be between 0 and 1
x_norm = (x-np. min (x))/(np. max (x)-np. min (x))

#view normalized array
print (x_norm)

[0. 0.05172414 0.10344828 0.15517241 0.17241379 0.43103448
 0.5862069 0.74137931 0.77586207 0.86206897 0.89655172 0.98275862
 1. ]

تمت تسوية كل قيمة في مصفوفة NumPy لتكون بين 0 و1.

وإليك كيف عملت:

الحد الأدنى للقيمة في مجموعة البيانات هو 13 والحد الأقصى للقيمة هو 71.

لتطبيع القيمة الأولى 13 ، سنطبق الصيغة التي تمت مشاركتها سابقًا:

  • z i = (x i – min(x)) / (الحد الأقصى(x) – min(x)) = (13 – 13) / (71 – 13) = 0

لتطبيع القيمة الثانية 16 ، سنستخدم نفس الصيغة:

  • z i = (x i – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0.0517

لتطبيع القيمة الثالثة 19 ، سنستخدم نفس الصيغة:

  • z i = (x i – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0.1034

نستخدم هذه الصيغة نفسها لتطبيع كل قيمة في مصفوفة NumPy الأصلية بين 0 و1.

المثال 2: تطبيع القيم باستخدام sklearn

مرة أخرى، لنفترض أن لدينا مجموعة NumPy التالية:

 import numpy as np

#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])

يمكننا استخدام الدالة MinMaxScaler() ‎ من sklearn لتطبيع كل قيمة في المصفوفة بين 0 و1:

 from sklearn import preprocessing as pre

#reshape array so that it works with sklearn
x = x. reshape (-1, 1)

#normalize all values to be between 0 and 1
x_norm = pre. MinMaxScaler (). fit_transform (x)

#view normalized array
print (x_norm)

[[0. ]
 [0.05172414]
 [0.10344828]
 [0.15517241]
 [0.17241379]
 [0.43103448]
 [0.5862069]
 [0.74137931]
 [0.77586207]
 [0.86206897]
 [0.89655172]
 [0.98275862]
 [1. ]]

تمت تسوية كل قيمة في مصفوفة NumPy لتكون بين 0 و1.

لاحظ أن هذه القيم المقيسة تتطابق مع تلك المحسوبة باستخدام الطريقة السابقة.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في NumPy:

كيفية ترتيب العناصر في مجموعة NumPy
كيفية إزالة العناصر المكررة من مجموعة NumPy
كيفية العثور على القيمة الأكثر تكرارًا في مصفوفة NumPy

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *