numpy.ndarray.shape改变维度

时间:2014-07-30 19:39:47

标签: python arrays numpy

保持numpy数组(numpy.ndarray.shape)尺寸的元组会改变大小。 E.g:

len(numpy.array([1,2,3]).shape) -> 1, shape=(1,)
len(numpy.array([[1,2,3],[4,5,6]]).shape) -> 2, shape=(2,3)

还有其他方法可以使维度对数组的类型保持不变吗?

这是我经常遇到的问题的一个例子:

mat3D = np.arange(27).reshape(3,3,3)
mat2D = np.arange(9)

def processMatrix(mat):
  if M.ndim == 2:
    return foo(mat)
  else:
    return np.array([foo(mat[:,:,c]) for c in range(mat.shape[2])]) 

拥有mat2D.shape = (3,3,1)会将代码简化为:

def processMatrix(mat):
    return np.array([foo(mat[:,:,c]) for c in range(mat.shape[2])]) 

1 个答案:

答案 0 :(得分:1)

您可以使用

numpy.array([[1,2,3],[4,5,6]]).ndim