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
参数,具体请参阅 处理 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