Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中创建矩形矩阵?_Python_Arrays - Fatal编程技术网

如何在Python中创建矩形矩阵?

如何在Python中创建矩形矩阵?,python,arrays,Python,Arrays,考虑上面用Python2.7.4编写的代码,以接受二维数组,然后打印它。这段代码运行良好,但它应该接受任何二维数组,例如m和的值可以分别为3,2,但它只接受一个平方矩阵。我们无法创建矩形矩阵,因为它会给出错误:如果m和n的值不相等,索引超出范围。有没有办法像在C/C++中那样轻松地创建矩形矩阵?您可以这样做: m,n=input() a=[0]*n for i in range(0,m): a[i]=[0]*m for i in range(0,m): for j in r

考虑上面用Python2.7.4编写的代码,以接受二维数组,然后打印它。这段代码运行良好,但它应该接受任何二维数组,例如m和的值可以分别为3,2,但它只接受一个平方矩阵。我们无法创建矩形矩阵,因为它会给出错误:如果m和n的值不相等,索引超出范围。有没有办法像在C/C++中那样轻松地创建矩形矩阵?

您可以这样做:

m,n=input()
a=[0]*n
for i in range(0,m):
      a[i]=[0]*m
for i in range(0,m):
     for j in range(0,n):
           a[i][j]=input()
print a
您应该看到类似的问题:

至于让您的确切代码正常工作,您只需在第2行和第4行切换
m
n

rows = input()
cols = input()

arr = [[None] * cols for _ in range(rows)]

for i in range(rows):
    for j in range(cols):
        print(arr)
        arr[i][j] = input()

print(arr)

Numpy是快速线性代数运算的优秀模块。可以使用Numpy创建一个矩形阵列,Numpy本质上是一个矩阵。(Numpy也有矩阵函数,但它们的使用有点繁琐)

例如,创建一个3x4数组,如下所示

m = input()  # rows
n = input()  # cols

a = [0] * m  # Initialize rows
for i in range(0, m):  # For each row (must be n rows)
    a[i] = [0] * n  # Initialize a column
for i in range(0, m):  # For each row
    for j in range(0, n):  # For each column
        a[i][j] = input()  # Input a value

print a
继续按照标准填写矩形矩阵的其余部分

import numpy as np

input = np.zeros((3, 4))  #This creates a 3x4 array. It is good practice to initialize your array with 0's

input[0][3] = 5           #Fill out your array. The 0,0 index is the top left corner

In [42]:input
Out[42]:
array([[ 0.,  0.,  0.,  5.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])