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

如何用纯Python实现NumPy中A[R][:,R]的等价操作?

纯Python实现NumPy的A[R][:,R]等价操作

当然有啦!用Python的列表推导式就能写出非常优雅且简洁的实现,完全不需要依赖NumPy。咱们直接看针对你给出示例的解决方案:

A = [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
R = [1, 2, 2]

# 核心实现代码
result = [[row[i] for i in R] for row in (A[r] for r in R)]

print(result)  # 输出: [[2, 3, 3], [3, 4, 4], [3, 4, 4]]

代码解释

这个实现分两步完成,和NumPy的A[R][:,R]逻辑完全对应:

  • 第一步取行:(A[r] for r in R)是一个生成器表达式,它会按R中的索引依次取出A对应的行,对应NumPy里的A[R]。
  • 第二步取列:外层的列表推导式遍历第一步得到的每一行,再用内层列表推导式[row[i] for i in R]按R的索引取出每行对应的元素,对应NumPy里的[:,R]。

这种写法既简洁又符合Python的惯用风格,可读性拉满,而且对于中小型规模的数据来说效率也完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:23