Где макс?

Код:

a = np.array([[33,77,43],[32,33,55],[56,68,43],[45,45,67],[33,23,5]])
b=a.T
p=np.array([12,16,10,14,15])
def eachsales(position,price):
    print('each salesman total amount',np.sum((position*price),axis=1))
    i=np.where(np.sum((position*price),axis=1)==np.max(np.sum((position*price),axis=1)))
    print('the amount of salesman',i,'is the highest')
eachsales(b,p) 

Я узнал максимум и знал, где он находится.

Он сказал мне, что он находится на array([1], но я надеюсь, что он может вывести 1 (числовой).

И если это «1», выведите «продажи A». Если это «2», выведите «продажи B» и так далее.

each salesman total amount [2593 3107 2839]

the amount of salesman (array([1], dtype=int64),) is the highest

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
64
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуй это:

import warnings
warnings.filterwarnings("ignore")
import numpy as np
import string
a = np.array([[33,77,43],[32,33,55],[56,68,43],[45,45,67],[33,23,5]])
b=a.T
p=np.array([12,16,10,14,15])
def eachsales(position,price):
   print('each salesman total amount',np.sum((position*price),axis=1))
   i=np.where(np.sum((position*price),axis=1)==np.max(np.sum((position*price),axis=1)))
   print('the amount of salesman','Sales %s'%string.ascii_uppercase[i[0]-1],'is the highest')
eachsales(b,p) 

Выход:

each salesman total amount [2593 3107 2839]
the amount of salesman Sales A is the highest
Ответ принят как подходящий

Для этого не нужно использовать np.where(). Вместо этого используйте функцию np.argmax(), она напрямую возвращает индекс. Попробуйте следующий код:

import numpy as np
import string

a = np.array([[33,77,43],[32,33,55],[56,68,43],[45,45,67],[33,23,5]])
b = a.T

p = np.array([12,16,10,14,15])

def eachsales(position,price):
   print('each salesman total amount',np.sum((position*price),axis=1))

   i = np.argmax(np.sum((position*price),axis=1))
   print('the amount of salesman','Sales %s'%string.ascii_uppercase[i],'is the highest')

eachsales(b,p)

Другие вопросы по теме