วิธีทำให้ค่าปกติในอาร์เรย์ numpy ระหว่าง 0 ถึง 1


ในการทำให้ค่าของอาร์เรย์ NumPy เป็นปกติระหว่าง 0 ถึง 1 คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้:

วิธีที่ 1: ใช้ NumPy

 import numpy as np

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

วิธีที่ 2: ใช้ 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 – นาที(x)) / (สูงสุด(x) – นาที(x)) = (13 – 13) / (71 – 13) = 0

หากต้องการทำให้ค่าที่สองเป็น 16 ให้เป็นปกติ เราจะใช้สูตรเดียวกัน:

  • z i = (x i – นาที(x)) / (สูงสุด(x) – นาที(x)) = (16 – 13) / (71 – 13) = 0.0517

หากต้องการทำให้ค่าที่สามของ 19 เป็นมาตรฐาน เราจะใช้สูตรเดียวกัน:

  • z i = (x i – นาที(x)) / (สูงสุด(x) – นาที(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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *