我正在尝试创建一个100乘100的矩阵,该矩阵将填充1和-1(随机),并且矩阵的对角线应全部为零。
我是python和numpy的新手。
答案 0 :(得分:3)
使用1创建矩阵:
a = numpy.ones( (100,100) )
创建随机矩阵:
a = numpy.random.random( (100,100) ) # by default between zero and one
将所有对角线设置为零:
numpy.fill_diagonal(a, 0)
答案 1 :(得分:0)
作为替代方案,只需使用列表理解和随机:
from random import randint
x = [1,-1]
my_matrix = [[x[randint(0,1)] if i!=j else 0 for i in range(100)] for j in range(100)]
这将为您提供-1和1之间的随机选择,对角线为0。您可以将其嵌入到函数中,以便为您提供NxN大小的矩阵,如下所示:
from random import randint
def make_matrix(n):
x = [-1,1]
return [[x[randint(0,1)] if i!=j else 0 for i in range(n)] for j in range(n)]
答案 2 :(得分:-1)
这是一个用于创建2D矩阵的简单python线 - 100X100:
yourmatrix = [[0 for x in xrange(100)] for x in xrange(100)]