Я работаю с NumPy, и передо мной стоит следующая задача:
Это мои данные:
import numpy as np
# First 20 countries with employment data
countries = np.array([
'Afghanistan', 'Albania', 'Algeria', 'Angola', 'Argentina',
'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas',
'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium',
'Belize', 'Benin', 'Bhutan', 'Bolivia',
'Bosnia and Herzegovina'
])
# Employment data in 2007 for those 20 countries
employment = np.array([
55.70000076, 51.40000153, 50.5 , 75.69999695,
58.40000153, 40.09999847, 61.5 , 57.09999847,
60.90000153, 66.59999847, 60.40000153, 68.09999847,
66.90000153, 53.40000153, 48.59999847, 56.79999924,
71.59999847, 58.40000153, 70.40000153, 41.20000076
])
Я должен вернуть название страны с наибольшей занятостью в указанных данных о занятости и занятость в этой стране.
Это мой код:
def max_employment(countries, employment):
max_country = ?????
max_value = employment.max()
return (max_country, max_value)
Я застрял, вернув название страны с наибольшим номером занятости






вы можете использовать метод argmax numpy. argmax возвращает индекс максимального элемента массива numpy.
def max_employment(countries, employment):
max_country = countries.item(employment.argmax())
max_value = employment.max()
return (max_country, max_value)
Использование numpy.where позволяет учитывать повторяющиеся значения, то есть когда более чем одна страна разделяет максимальную занятость. В результате получится множество стран.
res = countries[np.where(employment == employment.max())]
Поскольку ваш числовой массив состоит из округленных процентов, это может иметь значение.
Голосующий не хочет комментировать? Это вероятный крайний случай.
измените свою функцию max_employment на это:
def max_employment(countries, employment):
max_value_index = np.argmax(employment)
max_value = employment[max_value_index]
max_country = countries[max_value_index]
return (max_country, max_value)
Ты можешь написать:
def max_employment(countries, employment):
max_value = employment.max()
max_country = countries[employment.tolist().index(max_value)]
return (max_country, max_value)
Вы можете использовать .tolist() для возврата массива в виде списка.
np.argmax (занятость) предоставит вам индекс, а затем разделит страны, использующие его