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

如何初始化Numpy布尔数组并按轴索引设置指定位置为False?

解决方法

已知我们有一个形状为(2, 3, 3)的数组ar:

import numpy as np
ar = np.arange(2*3*3).reshape(2, 3, 3)

要生成一个同形状的布尔数组,初始全为True,仅将**axis=2的第二个位置(注意Numpy用0起始索引,对应索引1)**的元素设为False,可以按以下步骤操作:

步骤1:创建全True的布尔数组

用np.full()直接生成和ar同形状的全True数组,代码直观易懂:

bool_arr = np.full(ar.shape, True, dtype=bool)

也可以用np.ones()实现同样效果:

bool_arr = np.ones(ar.shape, dtype=bool)

步骤2:指定位置赋值为False

利用Numpy的多维切片特性,选中前两个维度的所有元素,同时定位到axis=2的索引1位置,直接赋值为False:

bool_arr[:, :, 1] = False

验证结果

此时打印bool_arr就能得到期望的输出:

print(bool_arr)
# 输出:
# array([[[ True, False,  True],
#         [ True, False,  True],
#         [ True, False,  True]],
# 
#        [[ True, False,  True],
#         [ True, False,  True],
#         [ True, False,  True]]])

这种方法借助Numpy的切片赋值能力,高效简洁,非常适合处理多维数组的批量修改需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:57:03