首页 > 解决方案 > 在 Python 中从 (Nx1) 数组生成 (NxN) 数组

问题描述

考虑以下(Nx1)数组:

a = [[1]
     [2]
     [3]
     [4]
     [5]]

如何从中生成(NxN)数组a?例如N = 5

a = [[1 1 1 1 1]
     [2 2 2 2 2]
     [3 3 3 3 3]
     [4 4 4 4 4]
     [5 5 5 5 5]]

标签: pythonarraysnumpy

解决方案


如果要复制值,可以使用np.repeat

>>> np.repeat(a, len(a), 1)
array([[1, 1, 1, 1, 1],
       [2, 2, 2, 2, 2],
       [3, 3, 3, 3, 3],
       [4, 4, 4, 4, 4],
       [5, 5, 5, 5, 5]])

否则,您应该使用以下方法执行广播并a使用视图包装np.broadcast_to

>>> np.broadcast_to(a, (len(a),)*2)
array([[1, 1, 1, 1, 1],
       [2, 2, 2, 2, 2],
       [3, 3, 3, 3, 3],
       [4, 4, 4, 4, 4],
       [5, 5, 5, 5, 5]])

推荐阅读