我有一个 1d numpy 数组,如 p=array([ 1,2,3,4,5,6,7,8,9,10,11,12])
在我的工作中,我需要将其更改为二维数组
p_reshape = array([[1,2,3],
[4,5,6],
[6,7,8],
[9,10,11]])
我还有其他函数可以返回元素 i 在 p 矩阵 (1d) 中的位置,比如 p(i)
现在我想知道 p(i) 在转换后在二维矩阵 p_reshape 中的位置。
下面显示了从 1d 到 2d 的转换代码:
row=300
col=500
size=row*col
p=np.ones((size))
p_reshape=np.reshape((row,size))
我希望我能很好地表达我的想法。
最佳答案
我想你想要 numpy.unravel_index
In [3]: import numpy as np
In [4]: p = np.array([ 1,2,3,4,5,6,7,8,9,10,11,12])
In [5]: p_reshape = p.reshape(4,3)
In [6]: p_reshape
Out[6]:
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
In [7]: np.unravel_index(5, p_reshape.shape)
Out[7]: (1, 2)
关于python - 从 1D reshape 为 2D numpy 数组后如何返回元素的位置(索引)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181499/