无法将二维数组合并到另一个二维数组(python)
我有两张名单无法将二维数组合并到另一个二维数组(python),python,arrays,python-2.7,numpy,multidimensional-array,Python,Arrays,Python 2.7,Numpy,Multidimensional Array,我有两张名单 list_a list_b 其形状为[10,50]和[40,50] 我试图将它们组合成一个[50,50]数组,从以下代码开始(为可读性而编辑) 但它一直给我一个错误,说 “TypeError:只能将长度为1的数组转换为Python标量” 这里有什么问题,我如何解决?此错误没有多大帮助…np.concatenate需要一个元组作为参数,即它应该是 array_c=np.concatenate((array_a,array_b)) 第一个参数是由任意数量的数组组成的
list_a
list_b
其形状为[10,50]和[40,50]
我试图将它们组合成一个[50,50]数组,从以下代码开始(为可读性而编辑)
但它一直给我一个错误,说
“TypeError:只能将长度为1的数组转换为Python标量”
这里有什么问题,我如何解决?此错误没有多大帮助…
np.concatenate
需要一个元组作为参数,即它应该是
array_c=np.concatenate((array_a,array_b))
第一个参数是由任意数量的数组组成的元组,第二个参数(在您的例子中是
array_b
)告诉concatenate
,它应该沿着哪个轴操作。np。concatenate
需要一个元组作为参数,即它应该是
array_c=np.concatenate((array_a,array_b))
第一个参数是由任意数量的数组组成的元组,第二个参数(在您的例子中是
array_b
)告诉concatenate
,它应该沿着哪个轴操作。这里的问题是np.concatenate
要求第一个参数有一个类似数组的对象序列。这里它只需要array\u a
作为第一个参数。它将array_b
作为第二个参数,指定要沿哪个数组轴连接。由于此参数需要类似整数,因此它正在尝试将array_b
转换为整数,但失败,因为它包含多个项。因此出现此错误消息
要解决此问题,您需要将两个数组包装在一个iterable中,例如元组,如下所示:
cc=np.concatenate((array_a,array_b))
这将导致两个数组都作为第一个参数传递给函数。(编辑:在列表中换行也有效,即,连接([array\u a,array\u b])
。没有尝试过其他形式)
在您的示例中,这将起作用,因为第二个参数默认为0
,这意味着数组只能在第一个维度(第零个索引维度)中具有不同的长度。对于您来说,这些长度是10
和40
,另一个维度是50
。如果数组维度已反转,因此它们现在是[50,10]
和[50,40]
,则需要将轴设置为第二维度(索引1
),如下所示:
这里的问题是,
np.concatenate
要求第一个参数具有一个类似数组的对象的iterable序列。这里它只需要array\u a
作为第一个参数。它将array_b
作为第二个参数,指定要沿哪个数组轴连接。由于此参数需要类似整数,因此它正在尝试将array_b
转换为整数,但失败,因为它包含多个项。因此出现此错误消息
要解决此问题,您需要将两个数组包装在一个iterable中,例如元组,如下所示:
cc=np.concatenate((array_a,array_b))
这将导致两个数组都作为第一个参数传递给函数。(编辑:在列表中换行也有效,即,连接([array\u a,array\u b])
。没有尝试过其他形式)
在您的示例中,这将起作用,因为第二个参数默认为0
,这意味着数组只能在第一个维度(第零个索引维度)中具有不同的长度。对于您来说,这些长度是10
和40
,另一个维度是50
。如果数组维度已反转,因此它们现在是[50,10]
和[50,40]
,则需要将轴设置为第二维度(索引1
),如下所示: