I'm attempting to remove all NaN value entry from a Python 3.10 NumPy array of X-Y data points, prior to creating a polynomial fit via the polyfit NumPy function off of the data. The actual NaN values are located on the Y-axis, but I would like to remove both the X and Y values for each Y instance that's a NaN.
The following attempt:
import numpy as np
def main():
    dataX = [1, 2, 3, 4, 5]
    dataY = [1, np.nan, 5, np.nan, 1]
    finiteIdx = np.isfinite(dataX) & np.isfinite(dataY)
    poly = np.polyfit(dataX[finiteIdx], dataY[finiteIdx], 2)
if (__name__ == "__main__"):
    main()
Results in:
   poly = np.polyfit(dataX[finiteIdx], dataY[finiteIdx], 2)
TypeError: only integer scalar arrays can be converted to a scalar index
The following attempt:
import numpy as np
def main():
    dataX = [1, 2, 3, 4, 5]
    dataY = [1, np.nan, 5, np.nan, 1]
    poly = np.polyfit(dataX[~np.isnan(dataY)], dataY[~np.isnan(dataY)], 2)
if (__name__ == "__main__"):
    main()
Results in:
   poly = np.polyfit(dataX[~np.isnan(dataY)], dataY[~np.isnan(dataY)], 2)
TypeError: only integer scalar arrays can be converted to a scalar index
The following attempt:
import numpy as np
def main():
    dataX = [1, 2, 3, 4, 5]
    dataY = [1, np.nan, 5, np.nan, 1]
    poly = np.polyfit(dataX[dataY != np.nan], dataY[dataY != np.nan], 2)
if (__name__ == "__main__"):
    main()
Results in:
   raise TypeError("expected 1D vector for x")
TypeError: expected 1D vector for x
What is the proper way of removing all NaN values from a NumPy array?
Thanks for reading my post, any guidance is appreciated.
 
     
    