簡體   English   中英

在numpy中生成縮小范圍的1d數組

[英]Generating 1d array of shrinking ranges in numpy

我想在numpy中生成一個1D數組,如下所示:

In [181]: np.concatenate((np.arange(1, 4), np.arange(2, 4), np.arange(3, 4)))
Out[181]: array([1, 2, 3, 2, 3, 3])

在更大范圍內,偽代碼:

concatenate(1:n, 2:n, 3:n, ..., n:n)

是否有一種矢量化的方式在numpy和/或pandas中這樣做?

>>> np.triu_indices(4, 1)[1]
array([1, 2, 3, 2, 3, 3])

(正如@SaulloCastro指出的那樣,我沒有像在原始的,接受的答案中那樣使用各種索引到網格網格魔術中。)

我不知道以矢量化方式執行此操作的方法,但您始終可以使用以下內容生成它:

def createSweetRange(n):
    for i in xrange(1, n):
        for j in xrange(i, n):
            yield j

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM