复制数组维度

时间:2016-01-28 23:03:07

标签: python arrays numpy multidimensional-array indexing

我有一个具有多个维度的numpy数组,我想将其中一个维度复制到一个新维度。例如,如果我有

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

我想在下面的意义上创建一个带有附加尺寸的数组B,该尺寸与尺寸1重复。我希望每个坐标a的尺寸为0,b

B[a,b,:] = B[a,:,b]

我尝试了np.tile和np.repeat,但这些方法给了我一个数组

B[a,b,:] = array([A[a,b], A[a,b], ...]) 

对于上面的身份示例,我想要以下数组

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

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

提前谢谢!

1 个答案:

答案 0 :(得分:2)

我不完全确定你在问什么。但是,使用numpy.flipr(X) X numpy.array()的{​​{1}}可能是您正在寻找的内容。它向左/右方向翻转阵列。请参阅下面的代码。

import numpy as np
X1 = np.array([[1,0], [0,1]])
X2 = np.fliplr(X1)
X = np.array([X1, X2])
print X

返回:

[[[1 0]
  [0 1]]

 [[0 1]
  [1 0]]]