38

# 1D Histogram

Unsolved###### Data Wrangling

###### Fundamentals

A histogram represents the frequency distribution of data. The idea is to take a list of values and make a tally of how many times each value occurs.

Given a 1D NumPy array, create a histogram of the data represented as a NumPy array where the index represents the number and the value represents the count. Note that the first index (position 0) represents how many times number 1 occurs.

There are 2 things to note:

- The parameter
**range**default from**min**to**max**, however the task requires histogram starting from 1. **bins**default to only 10 values, therefore we must set it to**max**cover all the numbers in the**np.array**

##### Sample Input:

`arr: [1, 1, 1, 2, 2, 3, 5, 6, 7, 8, 9, 6, 8, 9, 7, 2, 9]`

##### Expected Output:

`[3. 3. 1. 0. 1. 2. 2. 2. 3.]`

This is a premium problem, to view more details of this problem please sign up for MLPro Premium. MLPro premium offers access to actual machine learning and data science interview questions and coding challenges commonly asked at tech companies all over the world

MLPro Premium also allows you to access all our high quality MCQs which are not available on the free tier.

Not able to solve a problem? MLPro premium brings you access to solutions for all problems available on MLPro

Get access to Premium only exclusive educational content available to only Premium users.

Have an issue, the MLPro support team is available 24X7 to Premium users.

##### This is a premium feature.

To access this and other such features, click on upgrade below.

Log in to post a comment

CommentsThere are 2 things to note:

- The parameter
**range**default from**min**to**max**, however the task requires histogram starting from 1. **bins**default to only 10 values, therefore we must set it to**max**cover all the numbers in the**np.array**

```
def get_histogram(arr):
max = np.amax(arr)
hist, bin = np.histogram(arr, bins=max, range=(1, max))
return hist
```

##
admin • 7 months, 4 weeks ago
**0**

**0**

Thank you for this comment! We have updated the problem description to include your note.

##
tien • 8 months ago
**0**

**0**

def get_histogram(arr):

uniques, uniq_idx, counts = np.unique(arr, return_index=True, return_counts=True)

return counts

It returns as

[3 3 1 1 2 2 2 3]

not

[3. 3. 1. 0. 1. 2. 2. 2. 3.]

which makes sense since there is nothing as zero duplicate in an array.

##
hamza1 • 7 months, 3 weeks ago
**0**

**0**

def get_histogram(arr):

arr = np.array(arr)

arr_count = [len(np.where(arr==each)[0]) for each in range(1, max(arr)+1)]

return arr_count

**Input :** arr = [1, 1, 1, 2, 2, 3, 5, 6, 7, 8, 9, 6, 8, 9, 7, 2, 9]

**output: **[3, 3, 1, 0, 1, 2, 2, 2, 3]

##
shiva6 • 6 months, 2 weeks ago
**0**

**0**

The Layman way:

```
def get_histogram(arr):
m=np.amax(arr)
li = np.zeros(shape=m)
for i in arr:
li[i-1]+=1
return li
```

##
darien • 2 months ago
**0**

**0**

# Please do not change the below function name and parameters

def get_histogram(arr):

return np.bincount(arr)[1:]

Input Test Case

Please enter only one test case at a timenumpy has been already imported as np (import numpy as np)

2