Open In App

Python | Filter out integers from float numpy array

Last Updated : 06 Jan, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a numpy array, the task is to filter out integers from an array containing float and integers. Let’s see few methods to solve a given task.

Method #1 : Using astype(int) 

Python3




# Python code to demonstrate
# filtering integers from numpy array
# containing integers and float
 
import numpy as np
 
# initialising array
ini_array = np.array([1.0, 1.2, 2.2, 2.0, 3.0, 2.0])
 
# printing initial array
print ("initial array : ", str(ini_array))
 
# filtering integers
result = ini_array[ini_array != ini_array.astype(int)]
 
# printing resultant
print ("final array", result)


  
Method #2: Using np.equal() and np.mod() 
 

Python3




# Python code to demonstrate
# filtering integers from numpy array
# containing integers and float
 
import numpy as np
 
# initialising array
ini_array = np.array([1.0, 1.2, 2.2, 2.0, 3.0, 2.0])
 
# printing initial array
print ("initial array : ", str(ini_array))
 
# filtering integers
result = ini_array[~np.equal(np.mod(ini_array, 1), 0)]
 
# printing resultant
print ("final array : ", str(result))


  
Method #3: Using np.isclose() 
 

Python3




# Python code to demonstrate
# filtering integers from numpy array
# containing integers and float
 
import numpy as np
 
# initialising array
ini_array = np.array([1.0, 1.2, 2.2, 2.0, 3.0, 2.0])
 
# printing initial array
print ("initial array : ", str(ini_array))
 
# filtering integers
mask = np.isclose(ini_array, ini_array.astype(int))
result = ini_array[~mask]
 
# printing resultant
print ("final array : ", str(result))


Method #4 : Using round()

Approach is to use the numpy.isreal() function and apply additional filtering to select only those elements that are not equal to their integer counterparts.

Python3




import numpy as np
 
# initializing array
ini_array = np.array([1.0, 1.2, 2.2, 2.0, 3.0, 2.0])
 
# printing initial array
print("initial array : ", str(ini_array))
 
# filtering integers
mask = np.isreal(ini_array)
result = ini_array[mask]
result = result[result != np.round(result)]
 
# printing resultant
print("final array : ", str(result))
#This code is contributed by Edula Vinay Kumar Reddy


Output:

initial array :  [1.  1.2 2.2 2.  3.  2. ]
final array :  [1.2 2.2]
 

Time complexity: O(n)
Auxiliary Space: O(n)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads