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

Python中如何固定数组首尾元素并打乱其余元素?

如何在打乱NumPy数组时固定首尾元素?

解决代码

import numpy as np

r2 = np.array([[54.3817864 , 53.42810469, 47.94544424, 53.63511598, 49.59728558,
        49.6935623 , 50.70031442, 52.80854701, 50.18808714, 51.80017684,
        51.85747597, 54.3817864 ]])

# 提取中间待打乱的元素(排除首尾)
middle_elements = r2[0][1:-1]
# 原地打乱中间元素
np.random.shuffle(middle_elements)
# 重组数组:首元素 + 打乱后的中间元素 + 尾元素
result = np.array([np.concatenate([[r2[0][0]], middle_elements, [r2[0][-1]]])])

print(result)

步骤说明

  1. 拆分数组:通过切片r2[0][1:-1]获取除首尾外的所有中间元素,这部分是我们需要打乱的内容。
  2. 打乱中间元素:使用np.random.shuffle()对中间元素执行原地打乱,这个函数只会修改传入的数组,不会影响首尾元素。
  3. 重组数组:用np.concatenate()将固定的首元素、打乱后的中间元素、固定的尾元素拼接成新数组,得到符合要求的结果。

原代码问题说明

原代码直接对r2[0]执行np.random.shuffle(),会打乱数组内所有元素,包括需要固定的首尾值。通过拆分-打乱-重组的方式,就能精准控制打乱范围,保证首尾元素位置不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:45:31