python程序从用户输入生成n * n矩阵

时间:2018-09-23 16:11:12

标签: python python-3.x

我想通过用户输入n的值和矩阵元素来生成n * n矩阵。

以下是代码:

n=int(input("Enter the matrix size"))

import numpy as np

#initialise nxn matrix with zeroes
mat=np.zeros((n,n))

#input each row at a time,with each element separated by a space
for i in range(n):
    for j in range(n):
        mat[i][j]=input()
print(mat)  

但是我得到这样的输出

[[1. 2.]

 [3. 4.]]

和。 (点)在我不需要的数字之后。有没有办法使用循环和数组而不是NumPy来做到这一点?

4 个答案:

答案 0 :(得分:7)

您快要接近了。您只需在将矩阵初始化为

时将数据类型声明为dtype=int
mat=np.zeros((n,n), dtype=int)

然后您将没有点,而只有

[[1 2]
[3 4]]

答案 1 :(得分:5)

这是因为默认情况下,np.zeros将其值分配给float。要更改该替换行: mat=np.zeros((n,n))

具有:

mat=np.zeros((n,n), dtype=int)

它将为您提供所需的输出。

好的做法是在已使用的方法上使用help(),以了解如何使用它们,如本例所示。

答案 2 :(得分:2)

您可以使用此:

n =  int(input())

mat=[[int(input()) for x in range(n)] for i in range(n)]

您可以将上面的列表转换为numpy作为

np_mat = numpy.asarray(mat)

如果您想一次输入每一行,并且每个元素都用空格分隔,则可以这样做。

mat=[list(map(int, input().split())) for i in range(n)]

答案 3 :(得分:0)

include