示例#1
0
        //Replace NaN with zero and infinity with large finite numbers.

        //If `x` is inexact, NaN is replaced by zero, and infinity and -infinity
        //replaced by the respectively largest and most negative finite floating
        //point values representable by ``x.dtype``.

        //For complex dtypes, the above is applied to each of the real and
        //imaginary components of `x` separately.

        //If `x` is not inexact, then no replacements are made.

        //Parameters
        //----------
        //x : scalar or array_like
        //    Input data.
        //copy : bool, optional
        //    Whether to create a copy of `x` (True) or to replace values
        //    in-place (False). The in-place operation only occurs if
        //    casting to an array does not require a copy.
        //    Default is True.

        //    ..versionadded:: 1.13

        //Returns
        //-------
        //out : ndarray
        //    `x`, with the non-finite values replaced.If `copy` is False, this may
        //    be `x` itself.

        //See Also
        //--------
        //isinf : Shows which elements are positive or negative infinity.
        //isneginf : Shows which elements are negative infinity.
        //isposinf : Shows which elements are positive infinity.
        //isnan : Shows which elements are Not a Number (NaN).
        //isfinite : Shows which elements are finite (not NaN, not infinity)

        //Notes
        //-----
        //NumPy uses the IEEE Standard for Binary Floating-Point for Arithmetic
        //(IEEE 754). This means that Not a Number is not equivalent to infinity.

        //Examples
        //--------
        //>>> np.nan_to_num(np.inf)
        //1.7976931348623157e+308
        //>>> np.nan_to_num(-np.inf)
        //-1.7976931348623157e+308
        //>>> np.nan_to_num(np.nan)
        //0.0
        //>>> x = np.array([np.inf, -np.inf, np.nan, -128, 128])
        //>>> np.nan_to_num(x)
        //array([  1.79769313e+308,  -1.79769313e+308,   0.00000000e+000,
        //        -1.28000000e+002,   1.28000000e+002])
        //>>> y = np.array([complex(np.inf, np.nan), np.nan, complex(np.nan, np.inf)])
        //>>> np.nan_to_num(y)
        //array([  1.79769313e+308 +0.00000000e+000j,
        //         0.00000000e+000 +0.00000000e+000j,
        //         0.00000000e+000 +1.79769313e+308j])

        public static object nan_to_num(object x, bool copy = true)
        {
            ndarray xa = asanyarray(x);
            ndarray xn = nan_to_num(xa, copy);

            return(xn.GetItem(0));
        }
示例#2
0
文件: dtype.cs 项目: lulzzz/numpy.net
 /// <summary>
 /// Converts a 0-d array to a scalar
 /// </summary>
 /// <param name="arr"></param>
 /// <returns></returns>
 internal object ToScalar(ndarray arr, long offset = 0)
 {
     if (ScalarType == null || ChkFlags(NpyArray_Descr_Flags.NPY_USE_GETITEM))
     {
         return(arr.GetItem(offset));
     }
     else
     {
         ScalarGeneric result = scalarInfo.ScalarConstructor();
         return(result.FillData(arr, offset, arr.Dtype.IsNativeByteOrder));
     }
 }