w3resource

Python: Find the ration of positive numbers, negative numbers and zeroes in an array of integers

Python map: Exercise-12 with Solution

Write a Python program to find the ration of positive numbers, negative numbers and zeroes in an array of integers.

Total number of elements in the give array = n
Ratio:
Positive numbers (n1) : Negative numbers(n2) : Zeroes(n3)
= n1/n : n2/n : n3/n

Sample Solution:

Python Code :

from array import array

def plusMinus(nums):
    n = len(nums)
    n1 = n2 = n3 = 0
    
    for x in nums:
        if x > 0:
            n1 += 1
        elif x < 0:
            n2 += 1
        else:
            n3 += 1
            
    return round(n1/n,2), round(n2/n,2), round(n3/n,2)

nums = array('i', [0, 1, 2, -1, -5, 6, 0, -3, -2, 3, 4, 6, 8])
print("Original array:",nums)
nums_arr = list(map(int, nums))
result = plusMinus(nums_arr)
print("Ratio of positive numbers, negative numbers and zeroes:")
print(result)
nums = array('i', [2, 1, 2, -1, -5, 6, 4, -3, -2, 3, 4, 6, 8])
print("\nOriginal array:",nums)
nums_arr = list(map(int, nums))
result = plusMinus(nums_arr)
print("Ratio of positive numbers, negative numbers and zeroes:")
print(result)

Sample Output:

Original array: array('i', [0, 1, 2, -1, -5, 6, 0, -3, -2, 3, 4, 6, 8])
Ratio of positive numbers, negative numbers and zeroes:
(0.54, 0.31, 0.15)

Original array: array('i', [2, 1, 2, -1, -5, 6, 4, -3, -2, 3, 4, 6, 8])
Ratio of positive numbers, negative numbers and zeroes:
(0.69, 0.31, 0.0)

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to compute the sum of elements of a given array of integers, use map() function.

Next: Write a Python program to count the same pair in two given lists. use map() function.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz


Python: Tips of the Day

Returns the index of the element with the maximum value in a list

Example:

def tips_max_element_index(arr):
  return arr.index(max(arr))
print(tips_max_element_index([2, 4, 8, 7, 10, 3, 0]))

Output:

4