根据Python中另一个数组中的索引创建一个数组

时间:2018-12-10 22:44:39

标签: python arrays

我有一个像这样的数组:

X= [[1,2,3],
    [3,2,1],
    [2,1,3]]

现在我要创建另一个数组Y。Y中的元素在X中的元素等于2的位置处应取值为1,否则它们应取值为0。在此示例中,Y应等于

Y=[[0,1,0],
   [0,1,0],
   [1,0,0]]

3 个答案:

答案 0 :(得分:4)

使用numpy将大大方便(并加快):

import numpy as np

Y = (np.array(X) == 2).astype(int)

>>> Y
array([[0, 1, 0],
       [0, 1, 0],
       [1, 0, 0]])

答案 1 :(得分:3)

您可以像这样使用列表理解:

Y = [[int(i == 2) for i in l] for l in X]

答案 2 :(得分:2)

Y = [[1 if i==2 else 0 for i in row] for row in X]