Python单独使用每个列生成repmat

时间:2016-06-20 20:16:43

标签: python numpy

我有一个3x3形状的数组,看起来像:

import numpy as np
A = np.array(([1,2,3],[11,12,5],[4,9,1]))
>>> A
array([[ 1,  2,  3],
       [11, 12,  5],
       [ 4,  9,  1]])

我想一次重新匹配一列3次,以便我可以实现以下目标:

B
array([[ 1,  1,  1,  2,  2,  2,  3,  3,  3],
       [11, 11, 11, 12, 12, 12,  5,  5,  5],
       [ 4,  4,  4,  9,  9,  9,  1,  1,  1]])

我可以为每个列和repmat做一个循环,但我正在寻找更聪明的方法,因为我的真实数组的大小为5000x300

1 个答案:

答案 0 :(得分:2)

这是numpy.repeat的工作。引用文档中的示例:

scala> implicit def ItAr2ItIt[T](ItAr: Iterable[Array[T]]): Iterable[Iterable[T]] = ItAr.map(_.toIterable)
ItAr2ItIt: [T](ItAr: Iterable[Array[T]])Iterable[Iterable[T]]

scala> def f3(o:Iterable[Iterable[Any]]):Unit = println("I like what I see!")
f3: (o: Iterable[Iterable[Any]])Unit

scala> val v3 = Iterable(Array(123))
v3: Iterable[Array[Int]] = List(Array(123))

scala> f3(v3)
I like what I see!