数字货币量化教程——使用itertools实现各种排列组合

在量化数据处理中,经常使用itertools来完成数据的各种排列组合以寻找最优参数

 

一、数据准备

import itertools
items = [1, 2, 3]

ab = ['a', 'b']
cd = ['c', 'd']

 

#1. permutations: 考虑顺序组合元素

for item in itertools.permutations(items):
    print(item)

返回

(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

 

#2. combinations,不考虑顺序,不放回数据

for item in itertools.combinations(items, 2):
    print(item)

返回

(1, 2)
(1, 3)
(2, 3)

 

# 3. combinations_with_replacement,不考虑顺序,有放回数据

for item in itertools.combinations_with_replacement(items, 2):
    print(item)

返回

(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3)

 

# 4. product()函数,迪卡尔积,在参数组合中寻找最优参数

针对ab,cd两个集合进行排列组合

for item in itertools.product(ab, cd):
    print(item)

返回

('a', 'c')
('a', 'd')
('b', 'c')
('b', 'd')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比特量化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值