>>> a = [np.zeros((224,224,3)), np.zeros((224,224,3)), np.zeros((224,224))]
>>> np.array(a)
ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224)
或者,输入类型不同,但错误相同:
>>> a = [np.zeros((224,224,3)), np.zeros((224,224,3)), np.zeros((224,224,13))]
>>> np.array(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not broadcast input array from shape (224,224,3) into shape (224,224)
或者,类似但有不同错误消息:
>>> a = [np.zeros((224,224,3)), np.zeros((224,224,3)), np.zeros((224,100,3))]
>>> np.array(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not broadcast input array from shape (224,224,3) into shape (224)
>>> np.array([np.zeros((20,200)),np.zeros((20,200)),np.zeros((20,201))])
ValueError: could not broadcast input array from shape (20,200) into shape (20)
列表中至少有一项不是三维的,或者其第二或第三维度与其他元素不匹配。如果只有第一个维度不匹配,则数组仍然匹配,但作为单个对象,不会尝试将它们协调到新的(四维)数组中。以下是一些例子:
也就是说,有问题的元素的
shape != (?, 224, 3)
,或
ndim != 3
(其中?
为非负整数)。这就是给你带来错误的原因
您需要解决这个问题,以便能够将列表转换为四维(或三维)数组。如果没有上下文,则无法确定是否要从三维项目中丢失一个标注,或将一个标注添加到二维项目(在第一种情况下),或更改第二个或第三个标注(在第二种情况下)
下面是一个错误示例:
或者,输入类型不同,但错误相同:
或者,类似但有不同错误消息:
但以下方法将起作用,尽管结果与(推测的)预期不同:
是的,的确@Evert的答案是完全正确的。 此外,我想补充一个原因,可能会遇到这样的错误
这很好,但是会导致错误:
列表中的numpy arry也必须具有相同的大小
您可以使用
astype(object)
将numpy.ndarray
转换为object
这将有助于:
相关问题 更多 >
编程相关推荐