Python中如何使用numpy库计算排列和组合?

2023-04-17 00:00:00 组合 排列 如何使用

在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))

输出结果:

皮蛋
皮编
皮程
蛋编
蛋程
编程

相关文章