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

Pythonic/Numpy方式将一维数组转为带索引二维向量数组的优化方法

更简洁的一维数组转带索引二维数组的Numpy技巧

你现在的实现确实能得到预期结果,但Numpy里有不少更直观简洁的方法可以做到这件事,我给你列几个常用的:

方法1:用np.column_stack()(最直观)

这个函数专门用来把多个一维数组按列堆叠成二维数组,直接把索引数组和原数据传进去就行,完全不用手动reshape和转置:

import numpy as np
data = [0.2, 0.6, 0.3, 0.5]
indices = np.arange(len(data))
vecs = np.column_stack((indices, data))

运行后得到的结果和你原来的完全一致:

array([[0. , 0.2],
       [1. , 0.6],
       [2. , 0.3],
       [3. , 0.5]])

方法2:用Numpy的c_索引器(语法糖,更简洁)

np.c_是Numpy提供的一个便捷索引器,专门用于按列拼接数组,写法非常紧凑,一行就能搞定:

import numpy as np
data = [0.2, 0.6, 0.3, 0.5]
vecs = np.c_[np.arange(len(data)), data]

效果和上面的方法完全一样,代码看起来更清爽。

方法3:用np.stack()指定轴(扩展性更强)

如果想更灵活控制堆叠方向,可以用np.stack(),指定axis=1来按列堆叠:

import numpy as np
data = [0.2, 0.6, 0.3, 0.5]
vecs = np.stack((np.arange(len(data)), data), axis=1)

这个方法的好处是如果之后需要按行堆叠,只需要把axis改成0就行,扩展性更强。

对比你原来的代码,这些方法都省去了手动reshape和transpose的步骤,逻辑更直白,一看就知道是在做数组拼接,可读性和简洁性都提升了不少。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 18:02:45