繁体   English   中英

在 Python 中使用网格搜索创建维度为 n * 3 的矩阵

[英]Use grid search to create a matrix with dimension n * 3 in Python

我想要一个像下面这样的矩阵,3 列,n 行。 每行总和为一。

[[0, 0, 1], [0, 0.1, 0.9], [0.1, 0.1, 0.8], [0.1, 0.2, 0.7] ...]

有图书馆可以这样做吗?

您可以使用itertools.combinations_with_replacement从 0.0 和 1.0 之间的 11 个插槽中选择 2 个分区:

from itertools import combinations_with_replacement
[[n / 10 for n in (a, b - a, 10 - b)] for a, b in combinations_with_replacement(range(11), 2)]

这将返回:

[[0.0, 0.0, 1.0],
 [0.0, 0.1, 0.9],
 [0.0, 0.2, 0.8],
 [0.0, 0.3, 0.7],
 [0.0, 0.4, 0.6],
 [0.0, 0.5, 0.5],
 [0.0, 0.6, 0.4],
 [0.0, 0.7, 0.3],
 [0.0, 0.8, 0.2],
 [0.0, 0.9, 0.1],
 [0.0, 1.0, 0.0],
 [0.1, 0.0, 0.9],
 [0.1, 0.1, 0.8],
 [0.1, 0.2, 0.7],
 [0.1, 0.3, 0.6],
 [0.1, 0.4, 0.5],
 [0.1, 0.5, 0.4],
 [0.1, 0.6, 0.3],
 [0.1, 0.7, 0.2],
 [0.1, 0.8, 0.1],
 [0.1, 0.9, 0.0],
 [0.2, 0.0, 0.8],
 [0.2, 0.1, 0.7],
 [0.2, 0.2, 0.6],
 [0.2, 0.3, 0.5],
 [0.2, 0.4, 0.4],
 [0.2, 0.5, 0.3],
 [0.2, 0.6, 0.2],
 [0.2, 0.7, 0.1],
 [0.2, 0.8, 0.0],
 [0.3, 0.0, 0.7],
 [0.3, 0.1, 0.6],
 [0.3, 0.2, 0.5],
 [0.3, 0.3, 0.4],
 [0.3, 0.4, 0.3],
 [0.3, 0.5, 0.2],
 [0.3, 0.6, 0.1],
 [0.3, 0.7, 0.0],
 [0.4, 0.0, 0.6],
 [0.4, 0.1, 0.5],
 [0.4, 0.2, 0.4],
 [0.4, 0.3, 0.3],
 [0.4, 0.4, 0.2],
 [0.4, 0.5, 0.1],
 [0.4, 0.6, 0.0],
 [0.5, 0.0, 0.5],
 [0.5, 0.1, 0.4],
 [0.5, 0.2, 0.3],
 [0.5, 0.3, 0.2],
 [0.5, 0.4, 0.1],
 [0.5, 0.5, 0.0],
 [0.6, 0.0, 0.4],
 [0.6, 0.1, 0.3],
 [0.6, 0.2, 0.2],
 [0.6, 0.3, 0.1],
 [0.6, 0.4, 0.0],
 [0.7, 0.0, 0.3],
 [0.7, 0.1, 0.2],
 [0.7, 0.2, 0.1],
 [0.7, 0.3, 0.0],
 [0.8, 0.0, 0.2],
 [0.8, 0.1, 0.1],
 [0.8, 0.2, 0.0],
 [0.9, 0.0, 0.1],
 [0.9, 0.1, 0.0],
 [1.0, 0.0, 0.0]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM