Min-max normalization rescales values to fit within a specific range, typically 0 -1. In this case we'll assume that we're rescaling to a range of 0 - 1. The lowest value will be transformed to 0, the highest value to 1, and all values in between will be transformed to a number between 0 and 1.

Missing values can represented in numpy as `nan`, meaning "not a number". To handle this case, I will ignore all `nan` values and pass them through as-is. I will need to handle edge cases such as the provided data falling outside of the provided minimum and maximum values.

```python
import numpy as np

def min_max_normalize(data, provided_min=None, provided_max=None):
    # If no data is provided, there is nothing to normalize
    if data is None:
        return None

    min = np.nanmin(data)
    if provided_min is not None:
        if provided_min > min:
            # Ensure we don't have any values less than the minimum
            data = np.maximum(data, provided_min)
        min = provided_min

    max = np.nanmax(data)
    if provided_max is not None:
        if provided_max < max:
            # Ensure we don't have any values greater than the maximum
            data = np.minimum(data, provided_max)
        max = provided_max

    range = max - min
    return (data - min) / range
```

This function could be used like this:
```python
data = np.array([-17, 2, np.nan, 13, 35, 9000, -123])
normalized_data = min_max_normalize(data, -50, 50)
print(normalized_data)
```

Output:
```
[0.33 0.52  nan 0.63 0.85 1.   0.  ]
```

I hope this helps.
การทำให้เป็นมาตรฐานต่ำสุด-สูงสุดจะปรับขนาดค่าใหม่เพื่อให้พอดีกับช่วงที่ระบุ โดยทั่วไปคือ 0 -1 ในกรณีนี้ เราจะถือว่าเรากำลังปรับสเกลใหม่เป็นช่วง 0 - 1 ค่าต่ำสุดจะถูกแปลงเป็น 0 ค่าสูงสุดเป็น 1 และค่าทั้งหมดที่อยู่ระหว่างนั้นจะถูกแปลงเป็นตัวเลขระหว่าง 0 ถึง 1 ค่าที่หายไปสามารถแสดงเป็นตัวเลขเป็น "nan" ซึ่งแปลว่า "ไม่ใช่ตัวเลข" ในการจัดการกรณีนี้ ฉันจะเพิกเฉยต่อค่า `nan` ทั้งหมดและส่งต่อค่าเหล่านั้นไปตามที่เป็นอยู่ ฉันจะต้องจัดการกับกรณี Edge เช่นข้อมูลที่ให้มาอยู่นอกค่าต่ำสุดและสูงสุดที่ให้ไว้ ```python นำเข้าตัวเลขเป็น np def min_max_normalize(data, specified_min=None, Provide_max=None): # หากไม่ได้ให้ข้อมูลไว้ จะไม่มีอะไรทำให้เป็นมาตรฐานหากข้อมูลเป็น None: return none min = np.nanmin(data) if Provide_min ไม่ใช่ None: if Provide_min > min: # ตรวจสอบให้แน่ใจว่าเราไม่มีค่าใด ๆ ที่น้อยกว่า data ขั้นต่ำ = np.maximum(data, Provide_min) min = Provide_min max = np.nanmax(data) ถ้า Provide_max ไม่ใช่ None: if Provide_max < max: # ตรวจสอบให้แน่ใจว่าเราไม่มีค่าใดๆ ที่มากกว่า data สูงสุด = np.minimum(data, specified_max) max = specified_max range = max - min return (data - min) / range ``` ฟังก์ชันนี้สามารถ นำมาใช้เช่นนี้: ```python data = np.array([-17, 2, np.nan, 13, 35, 9000, -123]) Normalized_data = min_max_normalize(data, -50, 50) print(normalized_data) ``` ผลลัพธ์: ``` [0.33 0.52 nan 0.63 0.85 1. 0. ] ``` ฉันหวังว่านี่จะช่วยได้
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence