numpy.random.Generator.permuted#
方法
- random.Generator.permuted(x, axis=None, out=None)#
沿著軸 axis 隨機置換 x。
與
shuffle
不同,沿著給定軸的每個切片都會獨立於其他切片進行洗牌。- 參數:
- xarray_like,至少一維
要洗牌的陣列。
- axisint,選用
在此軸中的 x 切片會被洗牌。每個切片都獨立於其他切片進行洗牌。如果 axis 為 None,則扁平化的陣列會被洗牌。
- outndarray,選用
如果給定,這將是洗牌後陣列的目的地。如果 out 為 None,則會傳回陣列的洗牌副本。
- 傳回值:
- ndarray
如果 out 為 None,則會傳回 x 的洗牌副本。否則,洗牌後的陣列會儲存在 out 中,並傳回 out
另請參閱
注意事項
方法
shuffle
和permuted
之間的重要區別在於它們如何處理axis
參數,可以在 處理軸參數 中找到。範例
建立
numpy.random.Generator
實例>>> rng = np.random.default_rng()
建立測試陣列
>>> x = np.arange(24).reshape(3, 8) >>> x array([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23]])
洗牌 x 的列
>>> y = rng.permuted(x, axis=1) >>> y array([[ 4, 3, 6, 7, 1, 2, 5, 0], # random [15, 10, 14, 9, 12, 11, 8, 13], [17, 16, 20, 21, 18, 22, 23, 19]])
x 未被修改
>>> x array([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23]])
若要就地洗牌 x 的列,請將 x 作為 out 參數傳遞
>>> y = rng.permuted(x, axis=1, out=x) >>> x array([[ 3, 0, 4, 7, 1, 6, 2, 5], # random [ 8, 14, 13, 9, 12, 11, 15, 10], [17, 18, 16, 22, 19, 23, 20, 21]])
請注意,當給定
out
參數時,傳回值為out
>>> y is x True