我想像numpy一样生成一维数组:
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中执行此操作的矢量化方法?
答案 0 :(得分:5)
>>> np.triu_indices(4, 1)[1]
array([1, 2, 3, 2, 3, 3])
(正如@SaulloCastro指出的那样,我没有像我在原始的,接受的答案中那样使用各种索引到网格网魔法。)
答案 1 :(得分:0)
我不知道以矢量化的方式做到这一点,但你总是可以用这样的方式生成它:
def createSweetRange(n):
for i in xrange(1, n):
for j in xrange(i, n):
yield j