Какво би било най-елегантният и ефективен начиннамерите индекс на ред в Numpy 2d масив, максимизиращ някаква функция? По-специално, трябва да намеря реда с максимален точков продукт с даден вектор. Кажи, че имам
a = np.array([[1, 2, 3], [3, 2, 1]])
b = np.array([6, 5, 4])
Тогава резултатът трябва да бъде 1
от np.dot(a[1],b)
е по - голяма от np.dot(a[0],b)
.
Отговори:
4 за отговор № 1просто:
>>> np.argmax(a.dot(b))
1
0 за отговор № 2
Ето един метод:
index = 0
value = 0
for index, entry in enumerate(a):
if np.dot(entry,b)>value:
index = index
value = np.dot(entry,b)
index
се завръща 1