迭代具有不同行的矩阵

2024-10-03 11:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如何有效地迭代由0和1组成的所有h×n数组,其中所有的行和列都是不同的?现在我这么做了。你知道吗

h = 10
n = 15
hxn = np.arange(h*n).reshape(h, -1)
for i in xrange(0, 2**(h*n)):
    M = (i >> hxn) & 1
#DO WORK

但这包括许多具有相同行或列的二维数组。我也不关心行或列的顺序。你知道吗


我不想只测试每个M,看看它是否有一个重复的行或列,并放弃那些,因为这将是非常低效的。我想找到一种方法,只需在数量少得多的矩阵上迭代,而不需要重复的行或列。你知道吗


Tags: 方法infor数量顺序np数组do
1条回答
网友
1楼 · 发布于 2024-10-03 11:18:00

你可以像这样用Numpy的sum()函数设置你的新矩阵M和计算

import numpy as np
h = 10
n = 15

M = np.zeros( (h,n), dtype ='float64' ) # create matrice M dimensioned h,n with floats
                                        # if you want integers instead of floats, change
                                        # dtype to 'int32'
hxn = np.arange(h*n).reshape(h, -1)

for i in xrange(0,h):   # loop in range h starting from 0
    for j in range(0,n):  # loop in range n from 0
        M[i,j] = sum([(i*j)*2])   # set matrice row and column, M[i,j] by sum([]) 

        print M

相关问题 更多 >