Python 2.7 从三维numpy矩阵中提取行
我目前遇到一个简单的问题,就是从3d numpy矩阵中提取一行 给定一个矩阵[3,3,3]=>我想提取一行,比如输出变成[1,3,3] 但我如何在不重塑的情况下做到这一点?我似乎一直在提取[3,3]Python 2.7 从三维numpy矩阵中提取行,python-2.7,numpy,matrix,Python 2.7,Numpy,Matrix,我目前遇到一个简单的问题,就是从3d numpy矩阵中提取一行 给定一个矩阵[3,3,3]=>我想提取一行,比如输出变成[1,3,3] 但我如何在不重塑的情况下做到这一点?我似乎一直在提取[3,3] >>> import numpy >>> a = numpy.random.rand(3,3,3) >>> print a[0].shape (3, 3) 对于任何数组形状,使用标量索引会将维数减少1 x[0] # 1 to 0
>>> import numpy
>>> a = numpy.random.rand(3,3,3)
>>> print a[0].shape
(3, 3)
对于任何数组形状,使用标量索引会将维数减少1
x[0] # 1 to 0 (scalar)
x[0,:], x[:,0] # 2 to 1
x[0,:,:], x[:,0,:] # 3 to 2
可以通过使用列表进行切片或索引,以多种方式保留尺寸:
x[[0],:,:]
x[0:1,:,:]
或将1添加回:
x[0, None,:,:]
x[0,:,:][None,:,:]
x[0,:,:].reshape(1,n,m)
重塑是便宜的,即使它看起来“丑陋”。不要害怕使用它。输出是正确的。你需要重塑它。行=a[0]。重塑1,3,3