Exemple #1
0
        public static ndarray setdiff1d(ndarray ar1, ndarray ar2, bool assume_unique = false)
        {
            /*
             * Find the set difference of two arrays.
             *
             * Return the sorted, unique values in `ar1` that are not in `ar2`.
             *
             * Parameters
             * ----------
             * ar1 : array_like
             *  Input array.
             * ar2 : array_like
             *  Input comparison array.
             * assume_unique : bool
             *  If True, the input arrays are both assumed to be unique, which
             *  can speed up the calculation.  Default is False.
             *
             * Returns
             * -------
             * setdiff1d : ndarray
             *  Sorted 1D array of values in `ar1` that are not in `ar2`.
             *
             * See Also
             * --------
             * numpy.lib.arraysetops : Module with a number of other functions for
             *                      performing set operations on arrays.
             *
             * Examples
             * --------
             * >>> a = np.array([1, 2, 3, 2, 4, 1])
             * >>> b = np.array([3, 4, 5, 6])
             * >>> np.setdiff1d(a, b)
             * array([1, 2])
             */

            if (assume_unique)
            {
                ar1 = ar1.ravel();
            }
            else
            {
                ar1 = unique(ar1).data;
                ar2 = unique(ar2).data;
            }
            return(ar1.A(in1d(ar1, ar2, assume_unique: true, invert: true)));
        }