如何在Python中编写Matrix

时间:2013-11-20 05:41:01

标签: python matrix

我想创建像下面这样的矩阵;

我仍然是这种语言的初学者,我非常需要帮助,谢谢

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

4 个答案:

答案 0 :(得分:2)

您可以创建列表列表并按照自己的意愿打印

matrix = [[0] * 5 for _ in range(5)]
for i in range(5):
    matrix[i][i] = 1
    print " ".join(str(num) for num in matrix[i])
print matrix

<强>输出

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]]

答案 1 :(得分:2)

如果您打算对矩阵进行任何实际工作,您应该强烈考虑查看NumPy

安装完成后:

>>> import numpy as np
>>> matrix = np.diag([1]*5)
>>> print(matrix)
[[1 0 0 0 0]
 [0 1 0 0 0]
 [0 0 1 0 0]
 [0 0 0 1 0]
 [0 0 0 0 1]]

到目前为止,还不太令人兴奋。但请查看:

>>> print(matrix * 2)
[[2 0 0 0 0]
 [0 2 0 0 0]
 [0 0 2 0 0]
 [0 0 0 2 0]
 [0 0 0 0 2]]
>>> print(matrix + 1)
[[2 1 1 1 1]
 [1 2 1 1 1]
 [1 1 2 1 1]
 [1 1 1 2 1]
>>> print((1 + matrix) * (1 - matrix))
[[0 1 1 1 1]
 [1 0 1 1 1]
 [1 1 0 1 1]
 [1 1 1 0 1]
 [1 1 1 1 0]]
>>> print(np.arccos(matrix) / np.pi)
[[ 0.   0.5  0.5  0.5  0.5]
 [ 0.5  0.   0.5  0.5  0.5]
 [ 0.5  0.5  0.   0.5  0.5]
 [ 0.5  0.5  0.5  0.   0.5]
 [ 0.5  0.5  0.5  0.5  0. ]]

所有这些数学,以及更多,你不必自己实现。它通常至少是你自己 实现它的速度的10倍。所有这一切,加上花哨的索引(比如按行,列或两者切片),以及你还不知道你要求的各种其他东西,但是会的。

答案 2 :(得分:0)

我的方式将是......

<强>代码:

size = 5
for i in range(size):
    for j in range(size):
        print 1 if i==j else 0,
    print ''

<强>输出:

1 0 0 0 0 
0 1 0 0 0 
0 0 1 0 0 
0 0 0 1 0 
0 0 0 0 1   

希望这会有所帮助:)

答案 3 :(得分:0)

我认为这是最简单的。请欣赏它

def fun(N):
    return [[0]*x + [1] + [0]*(N-x) for x in range(N)]
print(fun(5))

结果:

[[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0]]