繁体   English   中英

使用for和while循环迭代2D numpy数组

[英]Iterate 2D numpy array using for and while loops

该代码的目标是执行以下操作:

  1. 接受整数用户输入

  2. 创建一个具有多个行和列的1的numpy数组

  3. 创建一个一维数组,该数组使用range函数,该函数的元素数等于数组的大小。

  4. 依次将2D数组的每个元素与1D数组的元素相乘。

  5. 打印最终数组。

我尝试使用for和while循环对矩阵的不同位置进行迭代。

size = int(input("Enter the matrix size:"))
one_matrix = np.ones((size, size), dtype=int)
y = np.size(one_matrix)
range_matrix = np.arange(1, y + 1)  
i = 0
for i in range(size):
    j = 0
    while j > 2:
        one_matrix[i][j] = range_matrix[i + j]
        j += 1
    i += 1

我得到的输出为:

全1代替1,2,3,.... 9

while条件永远不会满足,因为

j = 0

在那之后

当j> 2时

您可以考虑以下解决方案:

 size = int(input("Enter the matrix size:")) one_matrix = np.ones((size, size), dtype=int) y = np.size(one_matrix) range_matrix = np.arange(1, y + 1) for i in range(y): r = i // size c = i % size one_matrix[r][c] = range_matrix[i] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM