Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连接不同形状的数组_Python_Arrays_Numpy - Fatal编程技术网

Python 连接不同形状的数组

Python 连接不同形状的数组,python,arrays,numpy,Python,Arrays,Numpy,给定不同维度的numpy数组,我想将它们连接起来。显然这是一个很常见的问题,但我找到的答案似乎与我的问题不符 在一个小例子上尝试了几种不同的方法之后,我仍然无法使它工作。我已经调查过了。我还尝试了附加和展平它 import numpy as np a = np.arange(9) a = a.reshape((3,3)) b = [] b.append(a[0,:]) b.append(a[1,1:2]) b.append(a[2,2]) b = np.asarray(b).flatten()

给定不同维度的
numpy
数组,我想将它们连接起来。显然这是一个很常见的问题,但我找到的答案似乎与我的问题不符

在一个小例子上尝试了几种不同的方法之后,我仍然无法使它工作。我已经调查过了。我还尝试了附加和展平它

import numpy as np

a = np.arange(9)
a = a.reshape((3,3))
b = []
b.append(a[0,:])
b.append(a[1,1:2])
b.append(a[2,2])
b = np.asarray(b).flatten()
print(b) # [array([0, 1, 2]) array([4]) 8]

总而言之,我总是收到一些错误消息,指出维度不匹配或类似的情况。

因此
b
是一个列表,包含(3,)和(1,)数组,以及标量(0d,
()
):

但是你想要什么组合

如果最后一项是数组(或列表),则可以连接:

In [79]: b = [a[0,:], a[1,1:2],[a[2,2]]]                                        
In [80]: b                                                                      
Out[80]: [array([0, 1, 2]), array([4]), [8]]
In [81]: np.concatenate(b)                                                      
Out[81]: array([0, 1, 2, 4, 8])
hstack
concatenate
的封面,确保所有元素至少为1d:

In [82]: b = [a[0,:], a[1,1:2],a[2,2]]                                          
In [83]: np.hstack(b)                                                           
Out[83]: array([0, 1, 2, 4, 8])

谢谢你,你太棒了!!
In [82]: b = [a[0,:], a[1,1:2],a[2,2]]                                          
In [83]: np.hstack(b)                                                           
Out[83]: array([0, 1, 2, 4, 8])