Friday, December 27, 2024
Google search engine
HomeLanguagesPython | Filter out integers from float numpy array

Python | Filter out integers from float numpy array

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)

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments