jax.numpy.split#
- jax.numpy.split(ary, indices_or_sections, axis=0)[源代码]#
将数组分割为子数组。
JAX 实现的
numpy.split()
。- 参数:
ary (类数组) – 要分割的 N 维类数组对象
indices_or_sections (int | Sequence[int] | 类数组) –
单个整数或索引序列。
如果
indices_or_sections
是一个整数 N,那么 N 必须能被ary.shape[axis]
整除,并且ary
将沿着axis
分割成 N 个大小相等的块。如果
indices_or_sections
是一个整数序列,那么这些整数指定了沿着axis
分割成大小不均的块的边界;请参阅下面的示例。
axis ( int ) – 要沿其分割的轴;默认为 0。
- 返回值:
一个数组列表。如果
indices_or_sections
是一个整数 N,那么列表的长度为 N。 如果indices_or_sections
是一个序列 seq,那么列表的长度为 len(seq) + 1。- 返回类型:
示例
分割一维数组
>>> x = jnp.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
分割成三个相等的部分
>>> chunks = jnp.split(x, 3) >>> print(*chunks) [1 2 3] [4 5 6] [7 8 9]
按索引分割成多个部分
>>> chunks = jnp.split(x, [2, 7]) # [x[0:2], x[2:7], x[7:]] >>> print(*chunks) [1 2] [3 4 5 6 7] [8 9]
沿着轴 1 分割二维数组
>>> x = jnp.array([[1, 2, 3, 4], ... [5, 6, 7, 8]]) >>> x1, x2 = jnp.split(x, 2, axis=1) >>> print(x1) [[1 2] [5 6]] >>> print(x2) [[3 4] [7 8]]
另请参阅
jax.numpy.array_split()
:类似split
,但允许indices_or_sections
是一个不能整除数组大小的整数。jax.numpy.vsplit()
:垂直分割,即沿着 axis=0 分割jax.numpy.hsplit()
:水平分割,即沿着 axis=1 分割jax.numpy.dsplit()
:深度分割,即沿着 axis=2 分割