numpy 中的 get_state()和set_state()

numpy.random.get_state():保存狀態,記錄下數組被打亂的操作(數組如何被打亂的)
numpy.random.set_state():接收get_state()返回的值,按照get_state()打亂的方式對新數組進行同樣的操作
可結合random.shuffle()函數使用,將實例與標籤兩個數組同時打亂,但打亂後,實例與標籤任然是一一對應的關係
可以在機器學習訓練樣本和特徵數據的shuffle操作時使用,保證了shuffle之後特徵數據和對應的label的映射關係沒有改變

#/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
train_data = [1, 2, 3, 4, 5, 6]
train_label = ['a', 'b', 'c', 'd', 'e', 'f']
cur_state = np.random.get_state()
np.random.shuffle(train_data)
np.random.set_state(cur_state)
np.random.shuffle(train_label)
print(train_data)
print(train_label)

結果

[2, 5, 1, 6, 4, 3]
['b', 'e', 'a', 'f', 'd', 'c']

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章