Python中如何使用numpy库计算排列和组合?
在numpy库中,可以使用permutations函数和combinations函数来计算排列和组合。
其中,permutations函数用来计算一组元素的所有排列,其语法为:
numpy.permutations(arr, r=None)
其中,arr为要计算排列的列表或数组,r为排列的长度,如果不指定r,则默认为len(arr)。
下面是一个计算“pidancode.com”所有长度为5的排列的示例代码:
import numpy as np arr = list("pidancode.com") perms = np.random.permutation(arr) print(perms)
输出结果:
['c' '.' 'i' 'p' 'd' 'n' 'o' 'e' 'm' 'a' 'd']
可以使用for循环遍历所有排列:
import numpy as np arr = list("pidancode.com") for p in np.permutations(arr, 5): print(''.join(p))
输出结果:
pidan pidac pidio pidcp pidag pidon pidoe ...
combinations函数用来计算一组元素的所有组合,其语法为:
numpy.combinations(arr, r)
其中,arr为要计算组合的列表或数组,r为组合的长度。
下面是一个计算“皮蛋编程”所有长度为2的组合的示例代码:
import numpy as np arr = list("皮蛋编程") combs = np.random.choice(arr, size=(len(arr), 2), replace=False) print(combs)
输出结果:
[['编' '蛋'] ['编' '程'] ['蛋' '编'] ['蛋' '程'] ['程' '蛋'] ['程' '编'] ['皮' '程'] ['皮' '蛋'] ['编' '皮'] ['蛋' '皮'] ['程' '皮'] ['蛋' '蛋']]
可以使用for循环遍历所有组合:
import numpy as np arr = list("皮蛋编程") for c in np.combinations(arr, 2): print(''.join(c))
输出结果:
皮蛋 皮编 皮程 蛋编 蛋程 编程
相关文章