我正在尝试找到一种方法来用值行填充数组。用一个例子来表达我想要的输出要容易得多。给定一个 N x M 矩阵 array1 的输入,
array1 = np.array([[2, 3, 4],
[4, 8, 3],
[7, 6, 3]])
我想输出一个数组数组,其中每一行都是一个 N x N,由相应行的值组成。输出将是
[[[2, 3, 4],
[2, 3, 4],
[2, 3, 4]],
[[4, 8, 3],
[4, 8, 3],
[4, 8, 3]],
[[7, 6, 3],
[7, 6, 3],
[7, 6, 3]]]
最佳答案
您可以将数组从 2d reshape 为 3d,然后沿所需轴使用 numpy.repeat()
:
np.repeat(array1[:, None, :], 3, axis=1)
#array([[[2, 3, 4],
# [2, 3, 4],
# [2, 3, 4]],
# [[4, 8, 3],
# [4, 8, 3],
# [4, 8, 3]],
# [[7, 6, 3],
# [7, 6, 3],
# [7, 6, 3]]])
或者等效地,您可以使用 numpy.tile
:
np.tile(array1[:, None, :], (1,3,1))
关于python - 使用没有循环的numpy在python中用数组或向量填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617530/