- Python: 如何获取n维数组的所有可能的数组属性?可以使用
itertools.product
吗?- 如果可以,应该如何使用?
- 在Python中,我有两个n维numpy数组
A
和B
(其中B
是一个零数组)。 - 这样的方式
A.shape[i] <= B.shape[i]
,对于任何i
在0
和n
之间。 我想创建一个for循环,以便每次迭代将A
分配给B
的不同子集,在这种方式下,每个可能的位置都被占用,直到for循环结束。
例如,对于A = np.array([[1,1,1],[1,1,1]])
和B = np.zeros((3,4))
,我会得到以下结果(每次迭代输出一个):
1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0
1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1
对于固定的n
维度,这很简单,只需为每个维度使用嵌套的for循环。
然而,我想要一个通用的n
维度。
我的方法是使用itertools.product
获取所有索引的组合。在上面的示例中,product([0,1],[0,1])
会遍历(0,0),(0,1),(1,0),(1,1)
,然后我就得到了我的索引。但是,我不知道如何向通用的n
传递参数值给product函数。有什么建议吗?有更好的做法吗?
n
的 product 函数。这个链接 https://dev59.com/HHVD5IYBdhLWcg3wQZUg 有帮助吗? - Karl Knechtel