如何检查列表中包含的多个数组的形状?

2024-04-27 00:12:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个包含多个数组的列表,我写了下面的代码试图查看这些数组的形状[0]

for i in xrange(len(list)):
    k = list[i].shape[0]
    print k

输出是正确的,但我想检查这些形状[0],也就是说,如果它们相同,函数将继续,否则,如果它们不是相同的数字,函数将中断。怎么做?请随时给我建议,谢谢。在

更新

我创建了一个名为“ab”的列表,其中包含3个不同的数组,并使用错误和异常代码检查形状[0]:

^{pr2}$

但结果是:

2
1
4
True

输出错误,哪里出错了?在


Tags: 函数代码in列表forlen错误数字
2条回答

您可以使用set理解来创建一组唯一的形状,然后检查该组的长度是否大于1:

shapes = {arr.shape[0] for arr in my_list}
if len(shapes) > 1:
    # return None

或者,作为一种更好的方法,尝试在数组上应用numpy函数,如果它们的形状不同,则会引发一个ValueError

^{pr2}$
all(x.shape[0]==list[0].shape[0] for x in list)

相关问题 更多 >