討論如何對資料進行放縮:
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_min
到nr_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 ...