我有一个包含多个numpy数组的numpy数组,我想将它转换为一个二维的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数组被初始化是因为numpy不支持在同一维度上具有不同长度的数组,但我想知道如何将一个“hack” numpy数组转换为“有效”的numpy数组。
vstack()
内使用hstack()
:e = np.vstack([np.hstack([a,b]), np.hstack([c,d])])
- tony_tiger