4
我有一个N×2维numpy数组。我想做一个(2 * N)x 2,其中每列重复。我很好奇,如果有比我下面写的更有效的方法来完成这项任务。插入一个numpy数组本身
>>> a = np.array([[1,2,3,4],
[2,4,6,8]])
>>> b = np.array(zip(a.T,a.T))
>>> b.shape = (2*len(a[0]), 2)
>>> b.T
array([[1, 1, 2, 2, 3, 3, 4, 4],
[2, 2, 4, 4, 6, 6, 8, 8]])
上面的代码是慢通过numpy的标准,很可能是因为zip
的。是否有numpy
函数可以用zip
替换?或者更好的方法来完成这一切?
美丽。我不能希望有更好的。 – Wilduck
您可以使用'axis'参数简化重复的使用:'a.repeat(2,axis = 1)'。 –
@WarrenWeckesser:对,你是! – DSM