Question: Python function using numpy Task 2.4: Computing Number of Purchaseable Masks Our fourth task is to implement compute_n_masks_purchaseable. This function takes two arguments, namely healthcare_spending

Python function using numpy

Task 2.4: Computing Number of Purchaseable Masks

Our fourth task is to implement compute_n_masks_purchaseable. This function takes two arguments, namely healthcare_spending and mask_prices, and it should compute the total number of masks that each country can purchase if she spends all her emergency healthcare spending on masks.

Assume that all countries bought the masks at the global average costs, and to reduce administrative hassle, they only buy masks on day (+1)(+1) with their emergency funds on day (+1)(+1), i.e. the masks that are bought on a particular day are not purchased with funding from the previous days.

The return value should be the total number of masks, which each country can purchase, represented as a 1D np.ndarray such that the -th entry corresponds to the total number of masks purchaseable by the -th country as represented in healthcare_spending.

For example, if we have healthcare_spending = np.array([[0, 100, 0], [100, 0, 200]]) and mask_prices = np.array([4, 3, 20]). Then, we expect the return value to be np.array([3300. 3500.]). This is because country 0 can only buy 33100=330033100=3300 masks on day 2 with 1001003 and are sold in batches of 100. Similarly, we find that country 1 can only buy (25+10)100=3500(25+10)100=3500 masks.

In this task, you may use the np.sum and the np.floor functions.

In [ ]:

 
def compute_n_masks_purchaseable(healthcare_spending, mask_prices):
 '''
 Computes the total number of masks that each country can purchase if she
 spends all her emergency healthcare spending on masks.
 Parameters
 ----------
 healthcare_spending: np.ndarray
 2D `ndarray` with each row representing the data of a country, and the columns
 of each row representing the time series data of the emergency healthcare
 spending made by that country, i.e. the ith row of `healthcare_spending`
 contains the data of the ith country, and the (i, j) entry of
 `healthcare_spending` is the amount which the ith country spent on healthcare
 on (j + 1)th day.
 mask_prices: np.ndarray
 1D `ndarray` such that the jth entry represents the cost of 100 masks on the
 (j + 1)th day.
 
 Returns
 -------
 Total number of masks which each country can purchase as a 1D `ndarray` such
 that the ith entry corresponds to the total number of masks purchaseable by the
 ith country as represented in `healthcare_spending`.
 Note
 ----
 The masks can only be bought in batches of 100s.
 '''
 
 # TODO: add your solution here and remove `raise NotImplementedError`
 raise NotImplementedError

In [ ]:

 
# Test case for Task 2.4
prices_constant = np.ones(5)
healthcare_spending_constant = np.ones((7, 5))
actual = compute_n_masks_purchaseable(healthcare_spending_constant, prices_constant)
expected = np.ones(7) * 500
assert(np.all(actual == expected))
 
healthcare_spending = np.array([[0, 100, 0], [100, 0, 200]])
mask_prices = np.array([4, 3, 20])
expected2 = np.array([3300, 3500])
assert(np.all(compute_n_masks_purchaseable(healthcare_spending, mask_prices)==expected2))

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!