python 数组组合_python-查找数组中某些元素的所有组合
一種方法是使用掩碼以ls中的值填充數(shù)組的無效條目,其次數(shù)是ls的排列次數(shù).
但是,通過將這些置換的長度設(shè)置為arr中無效條目的數(shù)量,可以使此操作更加可靠.這樣,我們還要考慮len(ls)> (x == None).sum().
def fill_combs(x, fill, replace=None):
from itertools import permutations
m = x == replace
for i in permutations(fill, int(m.sum())):
x_ = x.copy()
x_[m] = np.array(i)
yield x_.astype(int)
樣品運行:
arr = np.array([
[1, None, 3],
[9, 4, None],
])
ls = [9, 8]
list(fill_with_permut(arr, ls))
輸出:
[array([[1, 9, 3],
[9, 4, 8]]),
array([[1, 8, 3],
[9, 4, 9]])]
或更大的ls:
ls = [3,5,2]
list(fill_with_permut(arr, ls))
[array([[1, 3, 3],
[9, 4, 5]]),
array([[1, 3, 3],
[9, 4, 2]]),
array([[1, 5, 3],
[9, 4, 3]]),
array([[1, 5, 3],
[9, 4, 2]]),
array([[1, 2, 3],
[9, 4, 3]]),
array([[1, 2, 3],
[9, 4, 5]])]
總結(jié)
以上是生活随笔為你收集整理的python 数组组合_python-查找数组中某些元素的所有组合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python能进行切片操作的数据类型可以
- 下一篇: springboot不会运行gc_Spr