Взяв dotproduct 2D-массив - PullRequest
2 голосов
/ 28 марта 2019

Я хочу взять дотпродукт для сигмовидной функции.

import numpy as np


def sigmoid(x):
    sigm = 1 / (1 + np.exp(-x))
    return sigm


def p(D, w, b):
    prob=sigmoid(np.dot(D[:,7],w)+b)
    return prob

Работает

    x = np.array([D[0,7], D[0,9]])
    w = np.array([w1, w2])
    prob=sigmoid(np.dot(x[:],w)+b)

также работает, однако

    x = np.array([D[:,7], D[:,9]])
    w = np.array([w1, w2])
    prob=sigmoid(np.dot(x,w)+b)

НЕ работает. Выдает ошибку выравнивания размеров.

ValueError: shapes (2,426) and (2,) not aligned: 426 (dim 1) != 2 (dim 0)

Полагаю, я мог бы использовать цикл для итерации первой позиции массива, но, возможно, в Python3 есть способ сделать это более элегантно. Как правильно отформатировать массив, чтобы он принимался в качестве входных данных для функции numpy.dot ()?

...