如何使用numpy生成具有动态大小的数组的数组?

时间:2018-09-20 13:38:31

标签: arrays numpy

我想获取长度范围如下的numpy数组:

>>> source = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> get_array_of_arrays_with_min_length(source, 5)
    array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
           [2, 3, 4, 5, 6, 7, 8, 9, 10],
           [3, 4, 5, 6, 7, 8, 9, 10],
           [4, 5, 6, 7, 8, 9, 10],
           [5, 6, 7, 8, 9, 10],
           [6, 7, 8, 9, 10]])

如何用更少的代码做到这一点?

1 个答案:

答案 0 :(得分:0)

生成您的列表,

l = [ [i+1 for i in range(x+1, 10)] for x in range(6)]

然后创建您的数组。

a = numpy.array(l)

如果我不得不猜测你的函数应该做什么,

def get_array_of_arrays(source, m):
    return [ [ i for i in source if i>x] for x in range(m+1)]

这将为您提供所需的输入结果。实际上,这里的想法是列出列表。