返回Python中就业人数最高的国家的名称

返回Python中就业人数最高的国家的名称,python,numpy,Python,Numpy,我与NumPy合作,面临以下挑战: 这是我的数据: import numpy as np # First 20 countries with employment data countries = np.array([ 'Afghanistan', 'Albania', 'Algeria', 'Angola', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrai

我与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)
我在返回您要查找的就业人数最高的国家的名称时遇到了麻烦,这将返回最大值的索引:

>>> countries[employment.argmax()]
'Angola'

您可以使用numpy的argmax方法。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())]

由于数值数组由四舍五入的百分比组成,这可能很重要。

将最大就业函数更改为:

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(就业)将为您提供索引,然后使用ITS对国家进行切片以进行评论?这可能是一种边缘情况。