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

Numpy多维数组如何通过列表索引单次切片提取指定行列子矩阵

问题解答

你要实现单次索引完成对应行、列的选取,直接用NumPy内置的np.ix_函数即可,具体操作如下:

首先是你给出的初始代码:

import numpy as np
a = np.arange(25).reshape(5, -1)
idx = [1, 3]

单次索引的写法:

res = a[np.ix_(idx, idx)]

输出结果和两次切片的结果完全一致:

array([[ 6,  8],
       [16, 18]])

补充说明:

  • np.ix_的作用是将输入的一维索引序列转换为可广播的索引网格,第一个入参对应行维度的索引,第二个入参对应列维度的索引,不需要生成中间切片结果,性能优于两次切片的写法。
  • 如果你不想调用np.ix_,也可以手动对行索引做维度扩展实现同等效果,写法为a[np.array(idx)[:, np.newaxis], idx],本质和np.ix_的实现逻辑一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:12:01