jax.scipy.stats.sem

目录

jax.scipy.stats.sem#

jax.scipy.stats.sem(a, axis=0, ddof=1, nan_policy='propagate', *, keepdims=False)[源代码][源代码]#

计算均值的标准误差。

JAX 实现 scipy.stats.sem()

参数:
  • a (ArrayLike) – 类数组

  • axis (int | None) – 可选的整数。如果未指定,则输入数组将被展平。

  • ddof (int) – 整数,默认值为1。在SEM计算中的自由度。

  • nan_policy (str) – str, 默认值=”propagate”。JAX 仅支持 “propagate” 和 “omit”。

  • keepdims (bool) – bool, 默认=False。如果为真,缩减的轴将保留在结果中,尺寸为1。

返回:

数组

返回类型:

Array

示例

>>> x = jnp.array([2, 4, 1, 1, 3, 4, 4, 2, 3])
>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x)
Array(0.41, dtype=float32)

对于多维数组,sem 计算沿 axis=0 的均值标准误差:

>>> x1 = jnp.array([[1, 2, 1, 3, 2, 1],
...                 [3, 1, 3, 2, 1, 3],
...                 [1, 2, 2, 3, 1, 2]])
>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x1)
Array([0.67, 0.33, 0.58, 0.33, 0.33, 0.58], dtype=float32)

如果 axis=1,将沿 axis 1 计算平均值的标准误差。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x1, axis=1)
Array([0.33, 0.4 , 0.31], dtype=float32)

如果 axis=None,将沿着所有轴计算标准误差。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x1, axis=None)
Array(0.2, dtype=float32)

默认情况下,sem 会减少结果的维度。要使维度与输入数组相同,必须将参数 keepdims 设置为 True

>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x1, axis=1, keepdims=True)
Array([[0.33],
       [0.4 ],
       [0.31]], dtype=float32)

由于默认情况下 nan_policy='propagate'sem 会在结果中传播 nan 值。

>>> nan = jnp.nan
>>> x2 = jnp.array([[1, 2, 3, nan, 4, 2],
...                 [4, 5, 4, 3, nan, 1],
...                 [7, nan, 8, 7, 9, nan]])
>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x2)
Array([1.73,  nan, 1.53,  nan,  nan,  nan], dtype=float32)

如果 nan_policy='omit'sem 会忽略 nan 值,并沿着指定轴计算剩余值的误差。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jax.scipy.stats.sem(x2, nan_policy='omit')
Array([1.73, 1.5 , 1.53, 2.  , 2.5 , 0.5 ], dtype=float32)