You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用numpy shuffle后,如何替换数组元素并追加新值?

替代numpy shuffle的实现方案

方案1:纯Python列表 + random模块(完全脱离numpy打乱逻辑)

直接用Python标准库random的工具完成打乱,后续替换、追加操作全程在列表上执行,无需依赖numpy:

  • 初始数据可以直接定义为列表,或者从numpy数组通过tolist()转换而来
  • 用random.shuffle()原地打乱列表,或者random.sample()生成新的打乱列表(不修改原数据)
  • 列表推导式完成指定值替换
  • 用append()追加新值

代码示例:

import random

predCS = pred_CS[0]
# 直接用列表初始化数据
prediction = ["Software Engineer / Programmer", "Technical Support Specialist", "Academician", "Administrative Assistant"]

# 方式1:原地打乱原列表
random.shuffle(prediction)
# 替换指定值
prediction = [item.replace(predCS, '0') for item in prediction]
# 追加新值
prediction.append(predCS)

# 方式2:生成全新的打乱列表(保留原列表不变)
shuffled_pred = random.sample(prediction, k=len(prediction))
shuffled_pred = [item.replace(predCS, '0') for item in shuffled_pred]
shuffled_pred.append(predCS)

方案2:用numpy.permutation替代numpy.shuffle

如果仍想基于numpy数组操作,可使用np.random.permutation()替代np.random.shuffle()——前者返回新的打乱数组(不修改原数组),后续替换、追加都能用numpy原生方法完成,无需转列表:

import numpy as np

predCS = pred_CS[0]
prediction = np.array(["Software Engineer / Programmer", "Technical Support Specialist", "Academician", "Administrative Assistant"])

# 生成打乱后的新数组
shuffled_pred = np.random.permutation(prediction)
# 布尔索引替换指定值
shuffled_pred[shuffled_pred == predCS] = '0'
# numpy原生方法追加新值
shuffled_pred = np.append(shuffled_pred, predCS)

两种方案各有适用场景:纯Python方案轻量无依赖,适合小规模数据;numpy方案保持数组操作的高效性,适合大数据量场景。

内容的提问来源于stack exchange,提问作者Game Guardian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:40:27