我是否有如下最佳方式创建n * n矩阵?我能想到的唯一方法是创建一个n * n大小的列表并将块放入n大小的子列表中,然后应用于numpy。但是所有步骤似乎都是多余的
import numpy as np
n = 5
num = range(0, n*n)
num = [list(num[i:i+n]) for i in range(0, n*n, n)]
x = np.array([i for i in num], np.int32)
#=> [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]
# [20 21 22 23 24]]
答案 0 :(得分:4)
使用np.arange
生成序列,然后使用reshape
:
import numpy as np
np.arange(n * n).reshape(n, n)
#array([[ 0, 1, 2, 3, 4],
# [ 5, 6, 7, 8, 9],
# [10, 11, 12, 13, 14],
# [15, 16, 17, 18, 19],
# [20, 21, 22, 23, 24]])