Skip to main content
Documents
basicsArray CreationArray OperationsArray Computation & AnalysisLinear AlgebraRandom ProbabilityData Input/Output & Conversion

NumPy std()

NumPy's standard deviation function, `numpy.std()`, is used for computing the standard deviation of elements in an array. It measures the amount of variation or dispersion of a set of values.

Usage

The `numpy.std()` function is used to calculate the standard deviation along a specified axis of an array, which helps in understanding the spread of data values. It is particularly useful in statistical data analysis and preprocessing.

numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False)
  • a: Input array.
  • axis: Axis along which the standard deviation is computed. Default is None, computing over the entire array.
  • dtype: The data type of the returned array and of the accumulator in which the elements are summed. If dtype is not specified, it defaults to the dtype of a, unless a has an integer dtype with a precision less than that of the default platform integer, in which case the default platform integer is used.
  • out: An alternative output array in which to place the result. It must have the same shape as the expected output.
  • ddof: Delta Degrees of Freedom; the divisor used in calculations is N - ddof, where N is the number of elements. Default is 0.
  • keepdims: If set to True, the axes that are reduced are left in the result as dimensions with size one. This can be useful for broadcasting results.

Examples

1. Basic Standard Deviation

import numpy as np

data = [1, 2, 3, 4, 5]
std_dev = np.std(data)
print(std_dev)

This example calculates the standard deviation of a simple 1-D array, outputting the spread of the numbers.

2. Standard Deviation Along an Axis

import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6]])
std_dev_axis0 = np.std(data, axis=0)
print(std_dev_axis0)

Here, `np.std()` computes the standard deviation along each column (axis 0), showing how data varies across rows.

3. Using ddof Parameter

import numpy as np

data = [1, 2, 3, 4, 5]
std_dev_ddof = np.std(data, ddof=1)
print(std_dev_ddof)

This example adjusts the calculation by setting `ddof=1`, switching from population to sample standard deviation.

4. Using dtype for Precision

import numpy as np

data = [1, 2, 3, 4, 5]
std_dev_dtype = np.std(data, dtype=np.float64)
print(std_dev_dtype)

In this example, `dtype` is specified to ensure higher precision in the result.

5. Using out for Output Storage

import numpy as np

data = [1, 2, 3, 4, 5]
result = np.empty(1)
np.std(data, out=result)
print(result)

This example demonstrates using the `out` parameter to store the result in a pre-allocated array.

Tips and Best Practices

  • Understand axis implications. Be clear on which axis to apply the calculation to get meaningful results.
  • Choose the correct `ddof`. Use `ddof=1` for sample standard deviation; otherwise, use the default for population data.
  • Handle multi-dimensional arrays carefully. Always specify the axis if working with multi-dimensional data to avoid unexpected results.
  • Optimize performance. For large datasets, ensure that the data type is appropriate to avoid unnecessary memory consumption.
  • Use `dtype` for precision control. Specifying `dtype` can help manage the precision of the computed standard deviation.
  • Utilize `out` for memory efficiency. Pre-allocating an output array with `out` can be more efficient, especially with large data sets.
  • Leverage `keepdims` for broadcasting. Use `keepdims=True` to maintain dimensionality, which is particularly useful when further operations require broadcasting.