【numpy】np.random.shuffle()

博客介绍了生成随机列表的功能,但未提及具体实现方式等更多细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能:生成随机列表

x = np.arange(10)
print(x)
np.random.shuffle(x)
print(x)

输出:

[0 1 2 3 4 5 6 7 8 9]
[2 1 8 4 3 5 0 9 7 6]

 

### 关于 `numpy.random.shuffle` 的使用 `numpy.random.shuffle` 是 NumPy 提供的一个函数,用于对一维或多维数组的第一维度进行随机打乱操作。需要注意的是,此函数会 **直接修改原数组** 而不会创建新的副本[^5]。 以下是关于 `numpy.random.shuffle` 的具体说明以及示例: #### 单维数组的打乱 对于单维数组(即一维数组),`numpy.random.shuffle` 会对整个数组的内容进行随机重排。下面是一个简单的例子: ```python import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(f"原始数组: {arr}") np.random.shuffle(arr) print(f"打乱后的数组: {arr}") ``` 在这个例子中,`np.random.shuffle(arr)` 将直接修改数组 `arr` 中的元素顺序[^5]。 --- #### 多维数组的打乱 当处理多维数组时,`numpy.random.shuffle` 只会在第一个维度上进行打乱操作,而其余维度保持不变。例如: ```python import numpy as np multi_arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(f"原始二维数组:\n{multi_arr}") np.random.shuffle(multi_arr) print(f"沿第一维度打乱后的二维数组:\n{multi_arr}") ``` 在此情况下,只有二维数组的行被重新排序,列内的元素位置不受影响。 如果希望进一步对每行内部的数据也进行打乱,则需要逐一对每一行调用 `numpy.random.shuffle` 或者其他方法实现更复杂的逻辑。 --- #### 打乱列表的情况 虽然题目主要讨论了 NumPy 数组的操作,但如果涉及普通的 Python 列表,也可以通过标准库中的 `random.shuffle` 来完成类似功能[^4]: ```python import random my_list = [10, 20, 30, 40, 50] print(f"原始列表: {my_list}") random.shuffle(my_list) print(f"打乱后的列表: {my_list}") ``` 这里值得注意的一点是,尽管两者名称相同,但它们分别属于不同的模块,并且适用对象不同——前者适用于 NumPy 数组,后者则针对常规 Python 数据结构如列表等。 --- ### 总结 无论是使用 `numpy.random.shuffle` 还是 `random.shuffle` ,都可以有效地达到数据随机化的目的;不过,在实际应用过程中需注意输入参数的形式及其可能带来的副作用 (比如直接更改源数据),以便合理选用适合当前场景下的工具并采取适当措施保护重要资料免受意外变动的影响[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoveWeeknd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值