var equal = data1.Rank == data2.Rank &&
Enumerable.Range(0, data1.Rank).All(dimension => data1.GetLength(dimension) == data2.GetLength(dimension)) && data1.Cast<double>().Select(v => Math.Round(v, 4)).SequenceEqual(data2.Cast<double>().Select(v => Math.Round(v, 4)));