gpt4 book ai didi

python - 多维数组无需询问即可自行转置

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

当我尝试以稍微不同的方式访问多维数组时,我得到了我不理解的不同结果。

当我运行时:

ells=np.array([1,2,3,4])

check=np.zeros((2,2,2,len(ells)))
print(check[:,:,:,ells<=4].shape)
print(check[0,:,:,ells<=4].shape)

我实际上可以通过使用来解决这个问题

ells=np.array([1,2,3,4])

check=np.zeros((2,2,2,len(ells)))
print(check[:,:,:,ells<=4].shape)
print(check[0,:,:,:][:,:,ells<=4].shape)

但是我想了解为什么第一个版本是错误的。

在第一种情况下,我期望获得形状为 (2,2,2,4) 和 (2,2,4) 的数组,但我得到 (2,2,2,4) 和 (4,2,2 )。

在第二种情况下,我得到了预期的答案,(2,2,2,4) 和 (2,2,4)。

最佳答案

这是混合高级和基本索引的示例:

https://docs.scipy.org/doc/numpy-1.16.1/reference/arrays.indexing.html#combining-advanced-and-basic-indexing

两个外部索引选择大小4,然后添加两个内部切片:

check[0,:,:,ells<=4]

给出的原因是,当高级索引由切片分隔时,存在潜在的歧义。但当其中一个索引是标量时,这种歧义的情况就较弱(这是一个古老的反对意见)。

我确信有人可以找到重复的 SO。

关于python - 多维数组无需询问即可自行转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522478/

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