假设我有一个 numpy 矩阵数组
A=numpy.array([[[1, 0, 0],[1, 1, 0],[0, 1, 0],[1, 1, 1]],[[1, 0, 0],[1, 1, 1],[0, 0, 1],[1, 0, 1]]])
还有另一个数组
B=np.array([[1,2,3,4],[5,6,7,8]])
我们将其解释为要插入到 A 中的列数组。
我现在如何将 B 中的列插入到 A 中,即获得
[[[1, 1, 0, 0],[2, 1, 1, 0],[3, 0, 1, 0],[4, 1, 1, 1]],[[5, 1, 0, 0],[6, 1, 1, 1],[7, 0, 0, 1],[8, 1, 0, 1]]]
?
我尝试使用numpy.insert,但不幸的是我没有找到用这种方法解决这个问题。
你可以试试
import numpy as np
A = np.array([[[1, 0, 0],[1, 1, 0],[0, 1, 0],[1, 1, 1]],
[[1, 0, 0],[1, 1, 1],[0, 0, 1],[1, 0, 1]]])
B = np.array([[1,2,3,4],[5,6,7,8]])
B_reshaped = B.reshape(A.shape[0], A.shape[1], 1)
result = np.concatenate([B_reshaped, A], axis=2)
print(result)
结果
[[[1, 1, 0, 0],[2, 1, 1, 0],[3, 0, 1, 0],[4, 1, 1, 1]],
[[5, 1, 0, 0],[6, 1, 1, 1],[7, 0, 0, 1],[8, 1, 0, 1]]]
您可以向
B
和 concatenate
添加尺寸:
out = np.concatenate([B[..., None], A], axis=2)
输出:
array([[[1, 1, 0, 0],
[2, 1, 1, 0],
[3, 0, 1, 0],
[4, 1, 1, 1]],
[[5, 1, 0, 0],
[6, 1, 1, 1],
[7, 0, 0, 1],
[8, 1, 0, 1]]])