gpt4 book ai didi

python - 是否有获取 0D numpy 子数组的规范方法?

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

给定一个 numpy ndarray 和一个索引:

a = np.random.randint(0,4,(2,3,4))
idx = (1,1,1)

是否有一种干净的方法可以在 idx 处检索 a 的 0D 子数组?

等同于

a[idx + (None,)].squeeze()

但不那么骇人听闻?

注意@filippo 的聪明

a[idx][...]

等价。首先,它不适用于对象数组。但更严重的是,它不返回一个子数组而是一个新数组:

b = a[idx][...]
b[()] = 7
a[idx] == 7
# False

最佳答案

b = a[idx+(Ellipsis,)]

我在一台机器上测试并在平板电脑上写这个,所以不能提供我通常的验证码。

也许最好的文档解释(或事实陈述)是:

https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html#detailed-notes

When an ellipsis (...) is present but has no size (i.e. replaces zero :) the result will still always be an array. A view if no advanced index is present, otherwise a copy.

关于python - 是否有获取 0D numpy 子数组的规范方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47919869/

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