当前位置:  开发笔记 > 编程语言 > 正文

在numpy.reshape中跟踪索引更改

如何解决《在numpy.reshape中跟踪索引更改》经验,为你挑选了1个好方法。

numpy.reshape在Python中使用时,有没有办法跟踪索引的变化?

例如,如果将具有该形状的numpy数组(m,n,l,k)重塑为具有形状的数组(m*n,k*l);有没有一种方法可以获取[x,y,w,z]当前[X,Y]索引的初始索引(),反之亦然?



1> MSeifert..:

是的,有,它叫做ravelingunraveling索引。例如,您有两个数组:

import numpy as np

arr1 = np.arange(10000).reshape(20, 10, 50)
arr2 = arr.reshape(20, 500)

表示您想索引(10, 52)(相当于arr2[10, 52])元素,但在中arr1

>>> np.unravel_index(np.ravel_multi_index((10, 52), arr2.shape), arr1.shape)
(10, 1, 2)

或另一个方向:

>>> np.unravel_index(np.ravel_multi_index((10, 1, 2), arr1.shape), arr2.shape)
(10, 52)

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有