返回Python中就业人数最高的国家的名称
我与NumPy合作,面临以下挑战: 这是我的数据:返回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
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对国家进行切片以进行评论?这可能是一种边缘情况。