【发布时间】:2018-08-06 10:02:43
【问题描述】:
我想在 python 中创建一个 sn-p 以在具有重复值的多维数组上均匀分布一系列索引,这样我就可以得到一个维度为 (7,13) 的数组:
[[0 0 0 1 1 1 2 2 2 3 3 3 1]
[0 0 0 1 1 1 2 2 2 3 3 3 2]
[0 0 0 1 1 1 2 2 2 3 3 3 0]
[0 0 0 1 1 1 2 2 2 3 3 3 1]
[0 0 0 1 1 1 2 2 2 3 3 3 3]
[0 0 0 1 1 1 2 2 2 3 3 3 1]
[0 0 0 1 1 1 2 2 2 3 3 3 2]]
这对于具有相等数字的数组 f.ex 来说是微不足道的。 N = 12, 16。但对于任何其他情况,我想在该行中复制一个随机数。
此外,它应该被概括,以便每一行可能有不同的最大数量。第 4 行可能最多有 5 个,这样
[[0 0 0 1 1 1 2 2 2 3 3 3 1]
[0 0 0 1 1 1 2 2 2 3 3 3 2]
[0 0 0 1 1 1 2 2 2 3 3 3 0]
[0 0 1 1 2 2 3 3 4 4 5 5 5]
[0 0 0 1 1 1 2 2 2 3 3 3 3]
[0 0 0 1 1 1 2 2 2 3 3 3 1]
[0 0 0 1 1 1 2 2 2 3 3 3 2]]
到目前为止,我已经尝试过这样做
matches=[]
for pos in range(num_pos):
matches.append([i for i in range(0, lens[pos]) for _ in range(num_opp/lens[pos])])
matches = np.asarray(matches) # Matrix of perfect matches
这不考虑 num_opp/lens[pos]) 的额外分数,它们加起来是每一行中的另一个元素。
【问题讨论】:
-
请贴出你尝试过的代码
标签: python arrays python-2.7 numpy