【问题标题】:Create new matrix based on the index in an array根据数组中的索引创建新矩阵
【发布时间】:2021-07-14 16:00:36
【问题描述】:

假设我有一个一维数组a

a = np.array([0.75,0.85,0.95,0.1])

我还有一个 2x2 索引数组b

b=np.array([[0,2,0,3],[1,2,1,0]])

现在我想创建一个 2x2 数组 c,其中 c 中的每个元素都将根据索引从数组 a 中选择数组 b,例如数组 c 将如下所示:

array([[0.75, 0.95, 0.75, 0.1 ],
       [0.85, 0.95, 0.85, 0.75]])

我尝试使用 np.take_along_axis() 来实现这一点,但失败了。有什么建议吗?

【问题讨论】:

标签: python numpy indexing


【解决方案1】:

a[b]​ ​ ​ ​ ​ ​ ​​​​​​​​​

【讨论】:

    【解决方案2】:

    另一种方法是使用循环for列表理解

    c = np.array([a[x] for n in b for x in n])
    print(c)
    

    输出

    array([0.75, 0.95, 0.75, 0.1 , 0.85, 0.95, 0.85, 0.75])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多