Вопрос по python, arrays, numpy – Numpy Array суммирование с весами

11

У меня есть двумерный массив NumPy.

Каждая строка состоит из трех элементов и представляет собой целое число 0-3. Это представляет собой 6-битное целое число, причем каждая ячейка представляет два бита по порядку.

Я пытаюсь преобразовать их в полное целое число.

Например.

for i in range(len(myarray)):
  myarray[i] = myarray[i][0] * 16 + myarray[i][1] * 4 + myarray[i][2]

Например. Я пытаюсь суммировать каждую строку, но в соответствии с определенным вектором весов [16,4,1].

Какой самый элегантный способ сделать это? Я думаю, что мне нужно сделать какой-то точечный продукт с последующей суммой, но я не уверен на 100%, где сделать точку.

использовать NumPydot() метод Joel Cornett

Ваш Ответ

1   ответ
18

и это включает в себя сумму, которая вам нужна. Итак, чтобы получить сумму произведений элементов целевого массива и набора весов:

>>> a = np.array([[0,1,2],[2,2,3]])
>>> a
array([[0, 1, 2],
       [2, 2, 3]])
>>> weights = np.array([16,4,2])
>>> np.dot(a,weights)
array([ 8, 46])

Похожие вопросы