gpt4 book ai didi

python - Numpy 数组不能在单个 [] 中建立索引

转载 作者:太空狗 更新时间:2023-10-30 01:08:50 27 4
gpt4 key购买 nike

>>> allData.shape
Out[72]: (8L, 161L)
>>> mask = allData[2,:]
>>> allData[[0,1,3],:][:,mask == 1] # works fine
>>> allData[[0,1,3],mask == 1] # error: ValueError: shape mismatch: objects cannot be broadcast to a single shape

为什么 numpy 数组不能在单个括号 [] 中进行索引?

最佳答案

allData[[0,1,3],mask == 1] 更改为 allData[[0,1,3],argwhere(mask == 1)] 应该修复它。

简要说明,如果您按[[list1], [list2]] 对数组进行切片,则两个列表都应该是索引列表。如果其中一个被替换为 : 以获取该轴中的所有元素,则另一个列表可以是相同大小的 bool 数组。只有其中一个需要用 : 代替。考虑以下 3D 数组示例:

b=random.random((5, 10,2))
b[[0,1,3],:, some_mask==1] #works
b[:,:, some_mask==1] #works
b[[0,1,3],[2,4], some_mask==1] #ValueError

关于python - Numpy 数组不能在单个 [] 中建立索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145548/

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