np.ufun c .at для 2D-массива - PullRequest
       0

np.ufun c .at для 2D-массива

0 голосов
/ 17 марта 2020

Чтобы вычислить матрицу путаницы (а не точность), может потребоваться l oop по предсказанным и истинным меткам. Как это сделать способом numpy, если следующий код не даст нужного результата?

>> a = np.zeros((5, 5))
>> indices = np.array([
      [0, 0], 
      [2, 2],
      [4, 4],
      [0, 0],
      [2, 2],
      [4, 4],
   ])
np.add.at(a, indices, 1)
>> a
>> array([
   [4., 4., 4., 4., 4.],
   [0., 0., 0., 0., 0.],
   [4., 4., 4., 4., 4.],
   [0., 0., 0., 0., 0.],
   [4., 4., 4., 4., 4.]
])

# Wanted 
>> array([
   [2., 0., 0., 0., 0.],
   [0., 0., 0., 0., 0.],
   [0., 0., 2., 0., 0.],
   [0., 0., 0., 0., 0.],
   [0., 0., 0., 0., 2.]
])

1 Ответ

1 голос
/ 17 марта 2020

Документы говорят If first operand has multiple dimensions, indices can be a tuple of array like index objects or slice objects.

При использовании следующего кортежа желаемый результат достигнут.

np.add.at(a, (indices[:, 0], indices[:, 1]), 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...