繁体   English   中英

在 numpy 数组中添加具有特定值的列的最快方法?

[英]Fastest way to add a column in numpy array with a specific value?

这很可能是重复的; 抱歉,我找不到答案。 我有一个 (3000, 3) 数组,我想创建一个 (3000, 4) 数组,最后一列是特定值。 我可以做一个非常简单的np.insert(x, 1, val, axis=1)在第 1 列之前插入值,但我不能用 np.insert() 将它添加到最后一列。 我可以做np.repeat(val, np.shape(x)[0])或使用np.hstack()但他们需要首先创建一个与原始数组(不同)长度相同且有点笨重的数组(也许这是唯一的方法),如果我只关心一个我想要 append 的值,我猜有更好的方法。

有什么比np.concatenate((x, np.repeat(val, np.shape(x)[0])[:, np.newaxis]), axis=1)吗?

您可以分配一个更大的数组,从 x 复制旧值并在广播的帮助下用标量填充最后一列

y=np.empty_like(x, shape=(3000,4))
y[:,:-1]=x
y[:,-1]=your_value

我建议使用 np.c_ 和 np.ones_like 来减少一些冗长,但解决方案类似于您的建议

x=np.c_[x,val*np.ones_like(x[:,0])]

它不需要为新矩阵分配 memory。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM