Numpy`广播'阵列

时间:2015-12-08 00:01:07

标签: numpy matrix

我想使用numpy在theano中进行像dimshuffle这样的转换。

示例输入:

np.array([[1, 0, 0], [1, 0, 0]])

示例输出:

np.array([
    [[1, 0, 0], [1, 0, 0]],
    [[1, 0, 0], [1, 0, 0]],
    [[1, 0, 0], [1, 0, 0]]
])

1 个答案:

答案 0 :(得分:1)

我不知道dimshuffle的作用,但可以使用repeat生成输出

In [319]: np.repeat(np.array([[1, 0, 0], [1, 0, 0]])[None,:,:],3,axis=0)
Out[319]: 
array([[[1, 0, 0],
        [1, 0, 0]],

       [[1, 0, 0],
        [1, 0, 0]],

       [[1, 0, 0],
        [1, 0, 0]]])

输入为2d (2,3),因此我必须添加一个轴 - 输出为(3,2,3)tile会起作用,索引也会起作用,甚至:

A=np.array([[1, 0, 0], [1, 0, 0]])
np.array([A,A,A])