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

如何将NumPy二维数组中随机指定索引的元素替换为1?

解决NumPy二维数组线性索引元素替换问题

要实现将二维数组中指定线性索引的元素替换为1且保持二维结构,核心是把线性索引转换为二维数组的行列坐标,具体步骤如下:

  1. 导入依赖库
import numpy as np
import random
  1. 生成目标数组与随机索引
# 创建11行7列的全0二维数组
cellMAP_0 = np.full((11, 7), 0)
# 生成合法的随机线性索引(注意:randint是闭区间,上限需设为数组总元素数-1,避免索引越界)
start_point = random.randint(0, cellMAP_0.size - 1)
  1. 转换索引并替换元素
    利用NumPy的np.unravel_index()函数,将线性索引转换为二维数组的(row, col)坐标,直接赋值即可:
# 转换线性索引为二维坐标
row, col = np.unravel_index(start_point, cellMAP_0.shape)
# 将目标位置设为1
cellMAP_0[row, col] = 1

示例验证

当start_point=45时,np.unravel_index(45, (11,7))会计算出row=6、col=3(6*7=42,45-42=3),此时cellMAP_0[6, 3]会被替换为1,数组始终保持11行7列的二维结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:45:33