首页 > 解决方案 > 检查numpy数组是否具有正常形状

问题描述

如何检查numpy数组是否具有规则形状。

在下面的示例中x是一个*2 by 3*矩阵。然而y,在不能表示为适当矩阵的意义上,它是不规则的。

鉴于我有一个numpy数组,是否有一种方法(最好是内置的)我可以用来检查该numpy数组是否是一个实际的矩阵

In [9]: import numpy as np                                                      

In [10]: x = np.array([[1,2,3],[4,5,6]])                                        

In [11]: x.shape                                                                
Out[11]: (2, 3)

In [12]: y = np.array([[1,2,3],[4,5]])                                          

In [13]: y.shape                                                                
Out[13]: (2,)

标签: pythonnumpy

解决方案


两者都是数组,并且是有效的形状。但是,对于normal,您的意思是每个元素的形状和长度都相同。为此,更好的方法是检查数据类型。对于可变长度的情况,它将是object. 因此,我们可以检查该条件并相应地调用。因此,只需执行 -

def is_normal_arr(a): # a is input array to be tested
    return a.dtype is not np.dtype('object')

推荐阅读