两个或多个2D numpy数组如何按行组合。
我有两个numpy数组x和y。
x和y具有不同的形状。两个数组中只有行数= 14相同:
x = np.ones(14).reshape(14,1)
array([[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.],
[1.]])
y = np.zeros(42).reshape(14,3)
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
我想从两个或多个2D数组创建3D数组。
所需的结果是:
[[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]
[[1.], [0., 0., 0.]]]
答案 0 :(得分:0)
您可以使用理解循环
如果您可以接受输出为数组列表,则可以丢弃list()
,
import numpy as np
x = np.ones([14,1])
y = np.zeros([14,3])
arr1 = [[list(x[i]),list(y[i])] for i in range(14)]
arr1
[[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]],
[[1.0], [0.0, 0.0, 0.0]]]