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

如何获取一维NumPy数组各元素索引?需实现元素与索引相乘

嘿,你这个思路其实已经踩中NumPy里处理这类需求的惯用方法啦!

一维NumPy数组获取元素索引的标准方案

你用到的x * np.arange(np.size(x))就是NumPy中实现“元素乘自身索引”的最常用方式,完全符合惯用写法,原因如下:

  • 高效简洁:np.arange()会快速生成和输入数组长度完全一致的索引序列,配合NumPy的广播机制,直接就能完成元素级的乘法运算,不需要写循环,性能拉满。
  • 无场景限制:不管数组里有没有重复元素,这个方法都能精准对应每个元素的位置索引——完美避开了你提到的np.where()的局限性,毕竟np.where()是用来根据值条件筛选索引的,当元素值重复时,它根本没办法一次性拿到所有元素各自的索引。

示例代码

import numpy as np

# 测试用的一维数组(包含重复元素)
x = np.array([2, 5, 2, 7, 9])
# 元素与索引相乘的运算
result = x * np.arange(x.size)
print(result)  # 输出: [ 0  5  4 21 36]

另外补充个小细节:如果你的数组确定是一维的,用np.arange(x.shape[0])代替np.arange(np.size(x))也完全可行,两者效果一致,都是生成从0开始的连续索引序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:03:19