本文简要介绍 python 语言中  numpy.block  的用法。
- 用法:- numpy.block(arrays)
- 从嵌套的块列表中组装 nd-array。 - 最内层列表中的块沿着最后一个维度 (-1) 连接(参见 - concatenate),然后这些块沿着 second-last 维度 (-2) 连接,依此类推,直到到达最外层列表。- 块可以是任何维度,但不会使用正常规则进行广播。相反,插入大小为 1 的引导轴,以使所有块的 - block.ndim相同。这主要用于处理标量,这意味着像- np.block([v, 1])这样的代码是有效的,其中- v.ndim == 1。- 当嵌套列表有两层深度时,这允许从它们的组件构造块矩阵。 - arrays: 数组 或标量的嵌套列表(但不是元组)
- 如果传递单个 ndarray 或标量(深度为 0 的嵌套列表),则返回未修改(且未复制)。 - 元素形状必须沿适当的轴匹配(不广播),但前导 1 将根据需要添加到形状之前以使尺寸匹配。 
 
- block_array: ndarray
- 从给定块组装的数组。 - 输出的维数等于以下各项中的最大值: * 所有输入的维数 * 输入列表嵌套的深度 
 
- ValueError
- 如果列表深度不匹配 - 例如, - [[a, b], c]是非法的,应拼写为- [[a, b], [c]]
- 如果列表为空 - 例如, - [[a, b], []]
 
 
 - 参数:- 返回:- 抛出:- 注意:- 当仅使用标量调用时, - np.block等效于 ndarray 调用。所以- np.block([[1, 2], [3, 4]])等价于- np.array([[1, 2], [3, 4]])。- 此函数不强制块位于固定网格上。 - np.block([[a, b], [c, d]])不限于以下形式的数组:- AAAbb AAAbb cccDD- 但也允许生产,对于一些 - a, b, c, d:- AAAbb AAAbb cDDDD- 由于连接首先发生在最后一个轴上, - block_not_ 能够直接产生以下内容:- AAAbb cccbb cccDD- Matlab 的“square bracket stacking”, - [A, B, ...; p, q, ...],等价于- np.block([[A, B, ...], [p, q, ...]])。- 例子:- 该函数最常见的用途是构建块矩阵 - >>> A = np.eye(2) * 2 >>> B = np.eye(3) * 3 >>> np.block([ ... [A, np.zeros((2, 3))], ... [np.ones((3, 2)), B ] ... ]) array([[2., 0., 0., 0., 0.], [0., 2., 0., 0., 0.], [1., 1., 3., 0., 0.], [1., 1., 0., 3., 0.], [1., 1., 0., 0., 3.]])- 对于深度为 1 的列表, - block可以用作- hstack- >>> np.block([1, 2, 3]) # hstack([1, 2, 3]) array([1, 2, 3])- >>> a = np.array([1, 2, 3]) >>> b = np.array([4, 5, 6]) >>> np.block([a, b, 10]) # hstack([a, b, 10]) array([ 1, 2, 3, 4, 5, 6, 10])- >>> A = np.ones((2, 2), int) >>> B = 2 * A >>> np.block([A, B]) # hstack([A, B]) array([[1, 1, 2, 2], [1, 1, 2, 2]])- 对于深度为 2 的列表,可以使用 - block代替- vstack:- >>> a = np.array([1, 2, 3]) >>> b = np.array([4, 5, 6]) >>> np.block([[a], [b]]) # vstack([a, b]) array([[1, 2, 3], [4, 5, 6]])- >>> A = np.ones((2, 2), int) >>> B = 2 * A >>> np.block([[A], [B]]) # vstack([A, B]) array([[1, 1], [1, 1], [2, 2], [2, 2]])- 它也可以用在 - atleast_1d和- atleast_2d的地方- >>> a = np.array(0) >>> b = np.array([1]) >>> np.block([a]) # atleast_1d(a) array([0]) >>> np.block([b]) # atleast_1d(b) array([1])- >>> np.block([[a]]) # atleast_2d(a) array([[0]]) >>> np.block([[b]]) # atleast_2d(b) array([[1]])
相关用法
- Python numpy blackman用法及代码示例
- Python numpy broadcast用法及代码示例
- Python numpy byte_bounds用法及代码示例
- Python numpy broadcast.nd用法及代码示例
- Python numpy busday_offset用法及代码示例
- Python numpy base_repr用法及代码示例
- Python numpy bartlett用法及代码示例
- Python numpy broadcast.size用法及代码示例
- Python numpy broadcast.reset用法及代码示例
- Python numpy broadcast_shapes用法及代码示例
- Python numpy busdaycalendar用法及代码示例
- Python numpy bitwise_xor用法及代码示例
- Python numpy binary_repr用法及代码示例
- Python numpy bitwise_and用法及代码示例
- Python numpy broadcast.numiter用法及代码示例
- Python numpy busday_count用法及代码示例
- Python numpy broadcast.iters用法及代码示例
- Python numpy broadcast_to用法及代码示例
- Python numpy broadcast_arrays用法及代码示例
- Python numpy broadcast.ndim用法及代码示例
- Python numpy bmat用法及代码示例
- Python numpy bincount用法及代码示例
- Python numpy broadcast.index用法及代码示例
- Python numpy bitwise_or用法及代码示例
- Python numpy RandomState.standard_exponential用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.block。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
