w3resource

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


Write a Python program to find the ratio 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 :

# Import the 'array' class from the 'array' module
from array import array

# Define a function 'plusMinus' that takes a list of integers as input and returns the ratio of positive, negative, and zero numbers
def plusMinus(nums):
    # Get the length of the input list
    n = len(nums)
    # Initialize counters for positive, negative, and zero numbers
    n1 = n2 = n3 = 0
    
    # Iterate through each element in the list
    for x in nums:
        # Check if the element is positive, negative, or zero, and update the counters accordingly
        if x > 0:
            n1 += 1
        elif x < 0:
            n2 += 1
        else:
            n3 += 1
    
    # Return the ratio of positive, negative, and zero numbers, rounded to two decimal places
    return round(n1/n, 2), round(n2/n, 2), round(n3/n, 2)

# Create an array 'nums' of type 'i' (signed integer) with the specified elements
nums = array('i', [0, 1, 2, -1, -5, 6, 0, -3, -2, 3, 4, 6, 8])

# Print the original array 'nums'
print("Original array:", nums)

# Convert 'nums' to a list and store it in 'nums_arr'
nums_arr = list(map(int, nums))

# Call the 'plusMinus' function with 'nums_arr' as the argument and store the result in 'result'
result = plusMinus(nums_arr)

# Print the ratio of positive, negative, and zero numbers in the array
print("Ratio of positive numbers, negative numbers, and zeroes:")
print(result)

# Create another array 'nums' with different elements
nums = array('i', [2, 1, 2, -1, -5, 6, 4, -3, -2, 3, 4, 6, 8])

# Print the original array 'nums'
print("\nOriginal array:", nums)

# Convert 'nums' to a list and store it in 'nums_arr'
nums_arr = list(map(int, nums))

# Call the 'plusMinus' function with 'nums_arr' as the argument and store the result in 'result'
result = plusMinus(nums_arr)

# Print the ratio of positive, negative, and zero numbers in the array
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 Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.