Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy:从三维到二维_Python_Python 3.x_Python 2.7_Numpy_Numpy Ndarray - Fatal编程技术网

Python Numpy:从三维到二维

Python Numpy:从三维到二维,python,python-3.x,python-2.7,numpy,numpy-ndarray,Python,Python 3.x,Python 2.7,Numpy,Numpy Ndarray,我有一个形状矩阵[2000140190]。这里,2000是2D切片的数量,其中每个切片为[140190] 我想把这个3D矩阵转换成[7000,7600](提示:140*50=7000;190*40=7600;50*40=2000)。我想以行主要方式扩展矩阵。任何指针?如注释中所述,您可以np.重塑 m_2d = np.random.rand(7000, 7600) m_3d = m_2d.reshape([2000, 140, 190]) 如前所述,解决方案是重塑,如果需要行主键,则应根据文档

我有一个形状矩阵
[2000140190]
。这里,2000是2D切片的数量,其中每个切片为[140190]


我想把这个3D矩阵转换成
[7000,7600]
(提示:
140*50=7000
190*40=7600
50*40=2000
)。我想以行主要方式扩展矩阵。任何指针?

如注释中所述,您可以
np.重塑

m_2d = np.random.rand(7000, 7600)
m_3d = m_2d.reshape([2000, 140, 190])

如前所述,解决方案是重塑,如果需要行主键,则应根据文档将顺序设置为F:

m_2d = np.random.rand(7000, 7600)
m_3d = m_2d.reshape([2000, 140, 190],order='F')

听起来你也想要一个转置:

m_3d = np.random.rand(2000, 140, 190)

# break the 2000 dimension in two. Pick one:
m_4d = m_3d.reshape((50, 40, 140, 190))

# move the dimensions to collapse to be adjacent
# you might need to tweak this - you haven't given enough information to know
# what order you want
m_4d = m_4d.transpose((0, 2, 1, 3))

# collapse adjacent dimensions
m_2d = m_4d.reshape((7000, 7600))

有很多关于的文档,但是请注意,
40*50
2000
,而不是
200
。我的错。打字错误有太多的方式来解释这一点。你能解释一下
m3d[i,j,k]
m2d
中的结尾吗<代码>m2d[40*j+j%40,j//40+50*k]是许多选项之一。@Eric:是的,m3D映射到m2d。我有2D图像芯片(140X190),它们总共有2000个。从中提取这些芯片的图像的原始大小为(7000X7600),即,我在x方向提取50个芯片,在y方向提取40个芯片。现在,我想从这个3D矩阵重建完整的图像。