gpt4 book ai didi

python - 使用numpy中的一维数组从二维数组中选择多个元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:19 27 4
gpt4 key购买 nike

我在 numpy 中有两个数组。第一个是二维数组,可以将其视为向量列表。第二个是一维数组,可以将其视为二维数组的索引列表。

我想使用一维数组的索引选择二维数组的元素。现在我一直在做

        z=rnd.rand(2,10) # a list of 2d vectors of length 10
z_idx=rnd.randint(2,size=z.shape[1]) #indices selecting a dimension of the 2d vector

result=np.array([z[z_idx[i],i] for i in xrange(len(z_idx))])

但这很慢。

在 numpy 中有更好的方法吗?

最佳答案

可能是最简单的方法:

result = z[z_idx].diagonal()

也许使用 arange 会更有效率:

result = z[z_idx, np.arange(z_idx.size)]

更合适但等效的是np.indices:

result = z[z_idx, np.indices(z_idx.shape)[0]]

关于python - 使用numpy中的一维数组从二维数组中选择多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com