如何设置0-1的下三角矩阵?

Sam*_*tel 3 python arrays numpy matrix

我需要一个矩阵,为n维,看起来像这样对于n = 4:

[0,0,0,0]
[1,0,0,0]
[1,1,0,0]
[1,1,1,0]
Run Code Online (Sandbox Code Playgroud)

因为我需要1s的位置,即

0, 1
0, 2
0, 3
1, 2
1, 3
2, 3
Run Code Online (Sandbox Code Playgroud)

这是因为我想看看X点之间的距离,而无需浪费时间重复的距离.这些坐标只允许我这样做一次.

ars*_*jii 9

你基本上想要增加1每行中s 的数量(从0开始),同时用0s 填充行的其余部分,从而保持恒定的长度.尝试这样的事情:

>>> n = 4
>>> [[1]*i + [0]*(n - i) for i in xrange(n)]
[[0, 0, 0, 0], [1, 0, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0]]
Run Code Online (Sandbox Code Playgroud)

如果你正在使用NumPy:

>>> import numpy as np
>>> np.tril(np.ones((n, n), dtype=int), -1)
array([[0, 0, 0, 0],
       [1, 0, 0, 0],
       [1, 1, 0, 0],
       [1, 1, 1, 0]])
Run Code Online (Sandbox Code Playgroud)