Python那些事兒 資料放縮

2021-08-03 05:29:40 字數 1403 閱讀 8639

討論如何對資料進行放縮:

import numpy as np

np.random.seed(10)

x = [np.random.randomint(10, 25)*1.0

for i in range(10)]

defmin_max

(x):

return [round(round((xx - min(x))/(1.0*(max(x) - min(x))), 2) for xx in x]

print(x)

print(min_max(x))

----------

輸出:[19.0, 23.0, 14.0, 10.0, 11.0, 21.0, 22.0, 19.0, 23.0, 10.0]

[0.69, 1.0, 0.31, 0.0, 0.08, 0.85, 0.92, 0.69, 1.0, 0.0]

這樣就把原始數值分布縮放到[0, 1]區間內。10原來是最小的數,縮放後為0.0;23是原來最大的數,縮放後是1.0。

假如定義新的區間範圍為nr_minnr_max,那min_max的公式得做如下修改:

x_scaled = (x - min(x)) / (max(x) - min(x)) * (nr_max - nr_min) + nr_min
python例項**:

import numpy as np

np.random.seed(10)

x = [np.random.randint(10, 25)*1.0

for i in range(10)]

#定義函式

defmin_max_range

(x, range_values):

return [round( ((xx - min(x)) / (1.0*(max(x) - min(x)))) * (range_values[1] - range_values[0]) + range_values[0], 2) for xx in x]

if __name__ == '__main__':

print(x)

print(min_max_range(x, (100, 200)))

----------

輸出:[19.0, 23.0, 14.0, 10.0, 11.0, 21.0, 22.0, 19.0, 23.0, 10.0]

[169.23, 200.0, 130.77, 100.0, 107.69, 184.62, 192.31, 169.23, 200.0, 100.0]

將數值縮放到[100, 200],最小值10和最大值23縮放到100和200。

關於Python那些事兒

1.易於學習 python有相對較少的關鍵字,結構簡單,和乙個明確定義的語法,學習起來更加簡單。2.易於閱讀 python 定義的更清晰。3.易於維護 python的成功在於它的源 是相當容易維護的。4.乙個廣泛的標準庫 python的最大的優勢之一是豐富的庫,跨平台的,在unix,windows和...

python那些事兒pdf Python 那些事兒

python datatype 好久沒用,完了不少,寫個複習筆記以供以後使用 python 最基本的資料是序列,序列的基本特點就是可以索引,但是要記住python的index同c一樣,是從0開始的。序列的基本操作包括 indexing 索引 sliceing 分片 interation 迭代 以及a...

python那些事兒pdf python那些事兒

關於引號 單引號和雙引號的意義相同,都表示字串,單雙引號交替使用可以避免轉義符的麻煩。例如我們想在字串中包含乙個引號通常需要 這樣轉義,而如果用單引號來表示字串,那麼中間的雙引號表示引號就不需要斜槓轉義。例如 print i love kak a 這個輸出裡面就包含了單引號,輸出結果為i love ...