gpt4 book ai didi

python - 按索引复制 numpy 数组的单个轴

转载 作者:行者123 更新时间:2023-12-01 04:47:22 25 4
gpt4 key购买 nike

我正在寻找一种优雅的方法来通过索引提取 numpy 数组的单个轴的值。例如:

x = np.arange(16).reshape((4,4))
a = x[0]
b = x[:, 0]

这是我通常做的事情,但是我正在寻找类似的东西:

a = get( x, axis=0, index=0)
b = get( x, axis=1, index=0)

是否有一些奇特的功能可以做到这一点?

最佳答案

您可以使用np.rollaxis将您感兴趣的轴移到前面,然后像平常一样对其进行索引:

def get(x, axis=0, index=0):
return np.rollaxis(x, axis, 0)[index]

x = np.arange(27).reshape(3, 3, 3)

assert np.all(get(x, 1, 2) == x[:, 2, :])

正如 Joe 正确指出的那样,这将返回 x 的 View 。为了强制进行复制,您可以使用 .copy() 方法:

cpy = get(x, 1, 2).copy()

关于python - 按索引复制 numpy 数组的单个轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147179/

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