python - 沿轴使用给定索引对多维 np.array 进行排序
问题描述
假设我有一个形状为 (1,28,28,128) 的 np.array,它是 ResNet50 层的输出。我想可视化最强的 64 个特征图,如何对 np.array 进行排序?
这是我所做的,但它给了我想要的东西,但是,它不会对 np.array 进行排序。
feature_maps = np.random.rand(1,28,28,128)
idx = np.argsort(-1*np.sum(feature_maps,axis=(0,1,2)))
for i in range(64):
plt.subplot(8, 8, i + 1)
plt.imshow(normalize(feature_maps[:, :, idx[i]]), "gray")
plt.axis("off")
是否有一种简单的方法可以沿轴对具有已知索引的 np.array 进行排序,例如上面的 idx ?
解决方案
np.sort 不能完成所描述的工作,仍然可以通过切片来实现目标,如下所示:
feature_maps_sorted = feature_maps[:,:,:,idx]
推荐阅读
- ios - 如何将 tabBarItems 设置为不同的颜色?
- c# - ComboBox DisplayMemberPath 包含 LINQ 组名称和内联组元素
- windows - 批处理文件用户使用网络用户的最后一次登录
- ios - UILabel 不会改变它的值
- javascript - 以螺旋形式生成二维数组
- javascript - 在 WebStorm 中通过断言的测试失败
- c++ - 如何通过 CMake 获取 STATIC 库默认值
- java - 使 EJB @Schedule 中的方法只被调用一次
- angular - 当我在 WAVE 扩展结果中为离子输入标签使用 clearInput 属性时,出现空按钮名称错误。有没有人遇到过类似的问题?
- javascript - Safari 不包括 COOKIE 到第二个 CORS 请求