具有lxmxn广播形状的高级整数索引

今天早些时候,我问了有关整数数组索引的问题,我在获取答案并将其应用于启发问题的问题上遇到了麻烦。


简而言之,p_stack1它c_stack1包含从我正在研究的图像处理算法派生的数组。 p_stack1包含概率数据并c_stack1包含整数分类。我需要找到尺寸为768 x 1024的图像中每个像素的概率最高的分类。从用于整数数组索引的文档中,它提供了一种使用其整数索引对较高维数组的数据进行子集化的方法。


我最初提出的问题的解决方案适用于nxnxn形状的数组的简化示例,但似乎不适用于lxmxn形状的数组。


#dummy data

p_stack1 = np.reshape(np.random.uniform(0,1,2359296),(3,768,1024))

c_stack1 = np.reshape(np.random.randint(0,4,2359296),(3,768,1024))


#find where max value occurs on axis 0

ind_new=p_stack1.argmax(axis=0)


#Create assending indicies

nx, ny = 768,1024

xx = np.arange(ny)

aa= np.tile(xx,(ny,1))

bb = np.column_stack(tuple(aa))[:nx,:]

aa= np.tile(xx,(ny,1))[:nx,:]


#perform the integer array indexing

print(c_stack1[ind_new, aa,bb])

最后的打印语句返回错误:


IndexError: index 768 is out of bounds for axis 1 with size 768

我检查了aa和的形状,bb两者都是(768, 1024)


我错过了什么?


料青山看我应如是
浏览 113回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python