dask.array.stats.normaltest(a, axis=0, nan_policy='propagate')[source]

Test whether a sample differs from a normal distribution.

This docstring was copied from scipy.stats.normaltest.

Some inconsistencies with the Dask version may exist.

This function tests the null hypothesis that a sample comes from a normal distribution. It is based on D’Agostino and Pearson’s [1], [2] test that combines skew and kurtosis to produce an omnibus test of normality.


The array containing the sample to be tested.

axisint or None, optional

Axis along which to compute test. Default is 0. If None, compute over the whole array a.

nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional

Defines how to handle when input contains nan. The following options are available (default is ‘propagate’):

  • ‘propagate’: returns nan

  • ‘raise’: throws an error

  • ‘omit’: performs the calculations ignoring nan values

statisticfloat or array

s^2 + k^2, where s is the z-score returned by skewtest and k is the z-score returned by kurtosistest.

pvaluefloat or array

A 2-sided chi squared probability for the hypothesis test.



D’Agostino, R. B. (1971), “An omnibus test of normality for moderate and large sample size”, Biometrika, 58, 341-348


D’Agostino, R. and Pearson, E. S. (1973), “Tests for departure from normality”, Biometrika, 60, 613-622


>>> import numpy as np  
>>> from scipy import stats  
>>> rng = np.random.default_rng()  
>>> pts = 1000  
>>> a = rng.normal(0, 1, size=pts)  
>>> b = rng.normal(2, 1, size=pts)  
>>> x = np.concatenate((a, b))  
>>> k2, p = stats.normaltest(x)  
>>> alpha = 1e-3  
>>> print("p = {:g}".format(p))  
p = 8.4713e-19
>>> if p < alpha:  # null hypothesis: x comes from a normal distribution  
...     print("The null hypothesis can be rejected")
... else:
...     print("The null hypothesis cannot be rejected")
The null hypothesis can be rejected