numpy使用索引

时间:2017-03-28 06:37:16

标签: python numpy

我有points ndarray。

In [141]: points
Out[141]:
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7]])

我有这个分类器,我将点分为两类

In [142]: i5
Out[142]: array([0, 0, 1, 1])

注意,积分和i5的长度相同。

我知道这两个类都有这些值。

In [143]: c
Out[143]:
array([[2, 3],
       [4, 5]])

我想将点分配给我已分类的值。我期待的最终结果是

In [141]: points
Out[141]:
array([[2, 3],
       [2, 3],
       [4, 5],
       [4, 5]])

如何根据points上编入索引的c变异/更改i5

1 个答案:

答案 0 :(得分:1)

只需在i5上使用c作为索引数组,并将c上的索引视图分配给points

import numpy as np

c = np.array([[2, 3],
              [4, 5]])

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

points = c[i5]

# [[2 3]
#  [2 3]
#  [4 5]
#  [4 5]]

注意:根据您描述问题的方式,points的初始值似乎并不重要。这是一个合适的结论吗?

相关问题