如何在不修改原NumPy数组的情况下实现数组打乱?
不修改原数组打乱NumPy数组的方法
如果不想改动原数组,有两种实用的实现方式:
使用
np.random.Generator.permutation()方法
该方法会直接返回一个打乱后的新数组,原数组完全保持不变。示例代码:import numpy as np rng = np.random.default_rng() original_arr = np.array([1, 2, 3, 4, 5]) shuffled_arr = rng.permutation(original_arr) print("原数组:", original_arr) print("打乱后的数组:", shuffled_arr)先复制原数组,再对副本执行
shuffle()
先通过copy()方法创建原数组的副本,再对副本使用原地打乱的shuffle(),这样原数组不会被改动。示例代码:import numpy as np rng = np.random.default_rng() original_arr = np.array([1, 2, 3, 4, 5]) arr_copy = original_arr.copy() rng.shuffle(arr_copy) print("原数组:", original_arr) print("打乱后的副本:", arr_copy)
内容的提问来源于stack exchange,提问作者Richie Bendall
相关产品推荐
相关产品推荐

