用Python创建矩阵

时间:2013-06-21 17:23:32

标签: python arrays matrix numpy

我正在尝试创建一个100乘100的矩阵,该矩阵将填充1和-1(随机),并且矩阵的对角线应全部为零。

我是python和numpy的新手。

3 个答案:

答案 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)]