public void absolute() { var np = new NumPyGeneric <double>(); //2D var n = np.arange(-2, 2).reshape(2, 2); var n1 = np.absolute(n); Assert.IsTrue(n1[0, 0] == 2); Assert.IsTrue(n1[0, 1] == 1); Assert.IsTrue(n1[1, 0] == 0); Assert.IsTrue(n1[1, 1] == 1); //3D n = np.arange(-4, 4).reshape(2, 2, 2); n1 = np.absolute(n); Assert.IsTrue(n1[0, 0, 0] == 4); Assert.IsTrue(n1[0, 0, 1] == 3); Assert.IsTrue(n1[1, 0, 0] == 0); Assert.IsTrue(n1[1, 1, 1] == 3); //4D n = np.arange(-12, 12).reshape(2, 3, 2, 2); n1 = np.absolute(n); Assert.IsTrue(n1[0, 0, 0, 0] == 12); Assert.IsTrue(n1[0, 1, 0, 0] == 8); Assert.IsTrue(n1[1, 2, 1, 1] == 11); Assert.IsTrue(n1[1, 2, 0, 1] == 9); }
public void Zeros2Dim() { var np = new NumPyGeneric <int>(); var n = np.zeros(3, 2); Assert.IsTrue(Enumerable.SequenceEqual(n.Data, new int[] { 0, 0, 0, 0, 0, 0 })); }
public void ReShape() { var np = new NumPyGeneric <int>(); var n = np.reshape(np.arange(6), 3, 2); Assert.IsTrue(n[0, 0] == 0); Assert.IsTrue(n[1, 1] == 3); Assert.IsTrue(n[2, 1] == 5); // Assert.IsTrue(np2.ToString().Equals("array([[0, 1], [2, 3], [4, 5]])")); n = np.reshape(np.arange(6), 2, 3, 1); Assert.IsTrue(n[1, 1, 0] == 4); Assert.IsTrue(n[1, 2, 0] == 5); n = np.reshape(np.arange(12), 2, 3, 2); Assert.IsTrue(n[0, 0, 1] == 1); Assert.IsTrue(n[1, 0, 1] == 7); Assert.IsTrue(n[1, 1, 0] == 8); n = np.reshape(np.arange(12), 3, 4); Assert.IsTrue(n[1, 1] == 5); Assert.IsTrue(n[2, 0] == 8); n = np.reshape(n, 2, 6); Assert.IsTrue(n[1, 0] == 6); }
public void Enumerate() { var np = new NumPyGeneric <int>().arange(12).reshape(2, 3, 2); int i = 0; foreach (var nd1 in np) { Assert.IsTrue(Enumerable.SequenceEqual(np[new Shape(i)].Data, ((NDArrayGeneric <int>)nd1).Data)); Console.WriteLine(nd1.ToString()); int j = 0; foreach (var nd2 in (NDArrayGeneric <int>)nd1) { Assert.IsTrue(Enumerable.SequenceEqual(np[new Shape(i, j)].Data, ((NDArrayGeneric <int>)nd2).Data)); Console.WriteLine(nd2.ToString()); int k = 0; foreach (var nd3 in (NDArrayGeneric <int>)nd2) { Assert.IsTrue(np[i, j, k] == (int)nd3); Console.WriteLine(nd3.ToString()); k++; } j++; } i++; } }
public void randint() { var np = new NumPyGeneric <int>(); var a = np.random.randint(low: 0, high: 10, size: new Shape(5, 5)); Assert.IsTrue(a.Data.Count(x => x < 10) == 25); }
public void VStackNDArrays() { //1D var np = new NumPyGeneric <double>(); var n1 = np.array(new double[] { 1, 2, 3 }); var n2 = np.array(new double[] { 2, 3, 4 }); var n = np.vstack(n1, n2); Assert.IsTrue(n.Size == (n1.Size + n2.Size)); Assert.IsTrue(n[0, 0] == 1); Assert.IsTrue(n[1, 0] == 2); Assert.IsTrue(n[1, 2] == 4); //2D n1 = np.array(new double[][] { new double[] { 1 }, new double[] { 2 }, new double[] { 3 } }); n2 = np.array(new double[][] { new double[] { 4 }, new double[] { 5 }, new double[] { 6 } }); n = np.vstack(n1, n2); Assert.IsTrue(n.Size == (n1.Size + n2.Size)); Assert.IsTrue(n[0, 0] == 1); Assert.IsTrue(n[1, 0] == 2); Assert.IsTrue(n[2, 0] == 3); Assert.IsTrue(n[3, 0] == 4); Assert.IsTrue(n[4, 0] == 5); Assert.IsTrue(n[5, 0] == 6); }
public static NDArrayGeneric <T> delete <T>(this NumPyGeneric <T> np, NDArrayGeneric <T> nd, IEnumerable <T> delete) { var nd1 = np.array(nd.Data.Where(x => !delete.Contains(x))); nd1.Shape = new Shape(nd1.Data.Length); return(nd1); }
public void Double1DPlusOffset_NDArraySubtraction() { var np1 = new NumPyGeneric <double>().array(new double[] { 3, 5, 7 }); // var np2 = np1 - 3; // Assert.IsTrue(Enumerable.SequenceEqual(new double[]{0,2,4},np2.Data)); }
public void Complex1DPlusOffset_NDArraySubtraction() { var np1 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(6, 8), new Complex(10, 12) }); // var np2 = np1 - new Complex(2,1); // Assert.IsTrue(Enumerable.SequenceEqual(new Complex[]{new Complex(4,7),new Complex(8,11)},np2.Data)); }
public void ComplexTwo1D_NDArraySubtraction() { var np1 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(6, 8), new Complex(10, 12) }); var np2 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(5, 6), new Complex(7, 8) }); // var np3 = np1 - np2; // Assert.IsTrue(Enumerable.SequenceEqual(new Complex[]{new Complex(1,2),new Complex(3,4)},np3.Data)); }
public void ComplexTwo2D_MatrixAddition() { var np1 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(1, 2), new Complex(3, 4) }); var np2 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(5, 6), new Complex(7, 8) }); var np3 = np1 + np2; Assert.IsTrue(Enumerable.SequenceEqual(new Complex[] { new Complex(6, 8), new Complex(10, 12) }, np3.Data)); }
public void DoubleTwo1D_NDArraySubtraction() { var np1 = new NumPyGeneric <double>().array(new double[] { 3, 5, 7 }); var np2 = new NumPyGeneric <double>().array(new double[] { 1, 3, 4 }); // var np3 = np1 - np2; // Assert.IsTrue(Enumerable.SequenceEqual(new double[]{2,2,3},np3.Data)); }
public void Setup() { np = new NumPyGeneric <int>(); nd = new NDArrayGeneric <int>(); start = 0; step = 1; length = 100 * 100; np2 = new NumPy(); }
public void PowerWithSingleValue() { var np = new NumPyGeneric <double>().arange(3); np = np.power(2); Assert.IsTrue(np[0] == 0); Assert.IsTrue(np[1] == 1); Assert.IsTrue(np[2] == 4); }
public void Simple1DArray() { var np1 = new NumPyGeneric <double>().array(new double[] { 1, Math.E, Math.E * Math.E, 0 }); var np2 = np1.log(); Assert.IsTrue(np2[0] == 0); Assert.IsTrue(np2[1] == 1); Assert.IsTrue(np2[2] == 2); Assert.IsTrue(np2[3] == double.NegativeInfinity); }
public void DotTwo1DComplex() { var series1 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(0, 2), new Complex(0, 3) }); var series2 = new NumPyGeneric <Complex>().array(new Complex[] { new Complex(0, 2), new Complex(0, 3) }); //var series3 = series1.Dot(series2); //Complex[] expectedResult = new Complex[]{new Complex(-13,0)}; //Assert.IsTrue(Enumerable.SequenceEqual(series3.Data.ToArray(),expectedResult)); }
public static dynamic array(IList <object> list, string dataType) { Console.WriteLine(list); Console.WriteLine(dataType); dynamic returnArray = null; switch (dataType) { case "Double": { double[] array = list.Select(x => (double)x).ToArray(); returnArray = new NumPyGeneric <double>().array(array); break; } case "Float": { float[] array = list.Select(x => (float)x).ToArray(); returnArray = new NumPyGeneric <float>().array(array); break; } case "Int32": { System.Int32[] array = list.Select(x => (System.Int32)x).ToArray(); returnArray = new NumPyGeneric <int>().array(array); break; } case "Int64": { System.Int64[] array = list.Select(x => (System.Int64)x).ToArray(); returnArray = new NumPyGeneric <System.Int64>().array(array); break; } case "Complex": { System.Numerics.Complex[] array = list.Select(x => (System.Numerics.Complex)x).ToArray(); returnArray = new NumPyGeneric <System.Numerics.Complex>().array(array); break; } default: { break; } } return(returnArray); }
public void TwoxThree() { NDArrayGeneric <double> np1 = new NumPyGeneric <double>().arange(6).reshape(3, 2); var np1Transposed = np1.transpose(); Assert.IsTrue(np1Transposed[0, 0] == 0); Assert.IsTrue(np1Transposed[0, 1] == 2); Assert.IsTrue(np1Transposed[0, 2] == 4); Assert.IsTrue(np1Transposed[1, 0] == 1); Assert.IsTrue(np1Transposed[1, 1] == 3); Assert.IsTrue(np1Transposed[1, 2] == 5); }
public void ThreeMultiplication() { NDArrayGeneric <double> np1 = new NumPyGeneric <double>().arange(4).reshape(2, 2); NDArrayGeneric <double> np2 = np1.inv(); NDArrayGeneric <double> np3 = new NumPyGeneric <double>().ones(new Shape(2, 2)); var OncesMatrix = np1.multi_dot(np2, np3); Assert.IsTrue(OncesMatrix[0, 0] == 1); Assert.IsTrue(OncesMatrix[1, 0] == 1); Assert.IsTrue(OncesMatrix[0, 1] == 1); Assert.IsTrue(OncesMatrix[1, 1] == 1); }
public void Simple1DArray() { var np = new NumPyGeneric <double>(); var nd = np.array(new double[] { 0, 30, 45, 60, 90 }) * (Math.PI / 180); var nd2 = np.sin(nd); Assert.IsTrue(nd2[0] == 0); Assert.IsTrue(nd2[1] < 0.501); Assert.IsTrue(nd2[1] > 0.498); Assert.IsTrue(nd2[2] < 0.708); Assert.IsTrue(nd2[2] > 0.7069); Assert.IsTrue(nd2[3] < 0.867); Assert.IsTrue(nd2[3] > 0.8659); Assert.IsTrue(nd2[4] == 1); }
public void HStackNDArrays() { //1D var np = new NumPyGeneric <double>(); var n1 = np.array(new double[] { 1, 2, 3 }); var n2 = np.array(new double[] { 2, 3, 4 }); var n = np.hstack(n1, n2); Assert.IsTrue(n.Size == (n1.Size + n2.Size)); Assert.IsTrue(n[0] == 1); Assert.IsTrue(n[1] == 2); Assert.IsTrue(n[3] == 2); Assert.IsTrue(n[5] == 4); //2D n1 = np.array(new double[][] { new double[] { 1 }, new double[] { 2 }, new double[] { 3 } }); n2 = np.array(new double[][] { new double[] { 4 }, new double[] { 5 }, new double[] { 6 } }); n = np.hstack(n1, n2); Assert.IsTrue(n.Size == (n1.Size + n2.Size)); Assert.IsTrue(n[0, 0] == 1); Assert.IsTrue(n[1, 0] == 2); Assert.IsTrue(n[2, 0] == 3); Assert.IsTrue(n[0, 1] == 4); Assert.IsTrue(n[1, 1] == 5); Assert.IsTrue(n[2, 1] == 6); //3D n1 = np.array(new double[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }).reshape(2, 3, 2); n2 = np.array(new double[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }).reshape(2, 3, 2); n = np.hstack(n1, n2); Assert.IsTrue(n.Size == (n1.Size + n2.Size)); Assert.IsTrue(n[0, 0, 0] == 0); Assert.IsTrue(n[0, 1, 0] == 2); Assert.IsTrue(n[0, 2, 1] == 5); //4D //n1 = np.arange(24 * 10000000).ReShape(20000, 30, 20, 2); //n2 = np.arange(24 * 10000000).ReShape(20000, 30, 20, 2); //n = np.hstack(n1, n2); //Assert.IsTrue(n.Size == (n1.Size + n2.Size)); }
/// <summary> /// Return a new array of given shape and type, filled with ones. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="np"></param> /// <param name="shape"></param> /// <returns></returns> public static NDArrayGeneric <T> ones <T>(this NumPyGeneric <T> np, Shape shape) { var nd = new NDArrayGeneric <T>(); nd.Shape = shape; switch (default(T)) { case int data: nd.Data = Enumerable.Range(0, nd.Size).Select(x => (T)(object)1).ToArray(); break; case double data: nd.Data = Enumerable.Range(0, nd.Size).Select(x => (T)(object)1.0).ToArray(); break; } return(nd); }
public void LinearRegression() { var np = new NumPyGeneric <double>(); // the time array var time = np.linspace(0, 10, 1000); // the values over t - linear dependence with noice var values = time * 3 + 5 + np.random.randn(time.Data.Length); var A = np.vstack(np.ones(new Shape(1000)), time); var A_T = A.transpose(); var A_T_A = A_T.dot(A); var A_PseudoInv = A.transpose().dot(A).inv(); var param = A_PseudoInv.dot(A.transpose()); //param = param.dot(param); }
public void amax() { var np = new NumPyGeneric <double>(); //no axis var n = np.arange(4).reshape(2, 2); var n1 = np.amax(n); Assert.IsTrue(n1[0] == 3); //2D with axis n1 = np.amax(n, 0); Assert.IsTrue(n1[0] == 2); Assert.IsTrue(n1[1] == 3); n1 = np.amax(n, 1); Assert.IsTrue(n1[0] == 1); Assert.IsTrue(n1[1] == 3); //3D n = np.arange(24).reshape(4, 3, 2); n1 = np.amax(n, 0); Assert.IsTrue(n1[0, 1] == 19); Assert.IsTrue(n1[2, 1] == 23); Assert.IsTrue(n1[1, 1] == 21); n1 = np.amax(n, 1); Assert.IsTrue(n1[1, 1] == 11); Assert.IsTrue(n1[2, 1] == 17); Assert.IsTrue(n1[3, 0] == 22); //4D n = np.arange(24).reshape(2, 3, 2, 2); n1 = np.amax(n, 1); Assert.IsTrue(n1[0, 0, 1] == 9); Assert.IsTrue(n1[1, 0, 1] == 21); Assert.IsTrue(n1[1, 1, 1] == 23); n1 = np.amax(n, 3); Assert.IsTrue(n1[0, 1, 1] == 7); Assert.IsTrue(n1[1, 1, 1] == 19); Assert.IsTrue(n1[1, 2, 1] == 23); }
public void Setup() { np = new NumPyGeneric <double>(); nd = np.arange(1000 * 8 * 8 * 8).reshape(1000, 8, 8, 8); }
public void SimpleInt1D() { var np = new NumPyGeneric <int>().ones(new Shape(5)); Assert.IsTrue(np.Data.Where(x => x == 1).ToArray().Length == 5); }
public void SimpleDouble3D() { var np = new NumPyGeneric <double>().ones(new Shape(5, 5, 5)); Assert.IsTrue(np.Data.Where(x => x == 1).ToArray().Length == 125); }
public void MeanAxisMinus1() { var np = new NumPyGeneric <double>().array(new double[] { 1, 2, 3, 4 }).reshape(2, 2); Assert.IsTrue(Enumerable.SequenceEqual(np.Mean().Data, new double[] { 2.5 })); }