• 解析numpy.random.get_state()和numpy.random.set_state()
  • get_state():可理解为设定状态,记录下数组被打乱的操作
  • set_state():接收get_state()返回的值,并进行同样的操作
  • 一般结合random.shuffle()函数使用
  • 将实例与标签两个数组同时打乱,但打乱后,实例与标签任然是一一对应的关系
# -*- coding: utf-8 -*-
"""
Created on Wed Jul  4 15:30:47 2018

@author: muli
"""

import numpy as np

#random.getstate()
#返回对象捕获发生器的当前内部状态。这个对象可以传递给setstate()来恢复状态
#random.setstate(state)
#状态应该已经从以前的调用中获得getstate(),
#以及setstate()恢复发生器的getstate()被调用的时候的内部状态。
a = np.arange(10)
print("a:")
print(a)
b=['A','B','C','D','E','F','G','H','I','J']
print("b:")
print(b)
print("----------------------------")
state=np.random.get_state()
np.random.shuffle(a)
print(a)
np.random.set_state(state)
np.random.shuffle(b)
print(b)

结果为:

a:
[0 1 2 3 4 5 6 7 8 9]
b:
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
----------------------------
[8 3 4 1 6 2 9 5 7 0]
['I', 'D', 'E', 'B', 'G', 'C', 'J', 'F', 'H', 'A']