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

Python中NumPy删除数组指定索引元素并获取扁平化数组的方法

实现方法

直接调用flatten()只会把多维数组按顺序展开成一维,不会过滤元素,要实现指定二维坐标删除后再展平的需求,可以按以下步骤处理:

  • 先把所有待删除的二维坐标,转换成数组按行优先(和flatten()默认展开规则一致)扁平化后的一维索引
  • 对展平后的数组,删除对应索引位置的元素即可得到目标结果T

完整可运行代码:

import numpy as np

inv_r = (1e4) * np.array([[0.60800941, 0.79907128, 0.99442121],
                          [0.61174008, 0.84891968, 0.71449188],
                          [0.6211801 , 0.88869614, 0.91835812]])

# 待删除的二维坐标集合
del_positions = [(0, 2), (1, 0), (1, 1)]
# 转换为扁平化后的一维索引
del_flat_indices = np.ravel_multi_index(tuple(zip(*del_positions)), inv_r.shape)
# 展平数组后删除对应元素
T = np.delete(inv_r.flatten(), del_flat_indices)

print([T])

运行代码后输出和期望完全一致:

[array([6080.0941, 7990.7128, 7144.9188, 6211.801 , 8886.9614, 9183.5812])]

关键说明

  • np.ravel_multi_index是numpy提供的索引转换工具,会自动按照指定的数组形状、展开顺序计算多维坐标对应的一维位置,避免手动计算索引出错。
  • np.delete不会修改原数组,会返回删除指定位置元素后的新数组,不需要额外做展平之外的维度处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:27:16