Python 将数组的numpy数组转换为二维numpy数组

Python 将数组的numpy数组转换为二维numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个由numpy数组组成的numpy数组,我想把它转换成一个2d numpy数组。比如说 #Init Sub Arrays a = np.array([1,2]) b = np.array([3,4,5]) c = np.array([2,1]) d = np.array([5,4,3]) #Combine Sub Arrays e = np.array([[a,b],[c,d]]) #Sample Sub Arrays f = e[:,0] #Attempt to convert su

我有一个由numpy数组组成的numpy数组,我想把它转换成一个2d numpy数组。比如说

#Init Sub Arrays
a = np.array([1,2])
b = np.array([3,4,5])
c = np.array([2,1])
d = np.array([5,4,3])

#Combine Sub Arrays
e = np.array([[a,b],[c,d]])

#Sample Sub Arrays
f = e[:,0]
#Attempt to convert sub np arrays to 2d np array
g = np.array(f)

expected = np.array([[1,2],[2,1]])
print("Actual 1: ",f)
print("Actual 2: ",g)
print("Expected:", expected)

print("Actual 1: ",np.ravel(f))
print("Actual 2: ",np.ravel(g))
print("Expected: ",np.ravel(expected))
输出:

Actual 1:  [array([1, 2]) array([2, 1])]
Actual 2:  [array([1, 2]) array([2, 1])]
Expected: [[1 2]
 [2 1]]
Actual 1:  [array([1, 2]) array([2, 1])]
Actual 2:  [array([1, 2]) array([2, 1])]
Expected:  [1 2 2 1]

我知道数组的初始化方式是这样的,因为numpy不支持同一维度上不同长度的数组,但我想知道如何将“hack”numpy数组的有效样本转换为“valid”numpy数组

您可以使用
np.vstack

out = np.vstack(e[:,0])
print(out)
array([[1, 2],
       [2, 1]])

print(out.ravel())
array([1, 2, 2, 1])

在此基础上,如果OP想要一个2 x 5数组,请在
vstack()
内部使用
hstack()
e=np.vstack([np.hstack([a,b]),np.hstack([c,d])