maxframe.tensor.ravel#
- maxframe.tensor.ravel(a, order='C')[源代码]#
返回一个连续的扁平化张量。
返回一个包含输入元素的1维张量。仅在需要时才会进行复制。
- 参数:
a (array_like) -- 输入张量。a 中的元素被打包成一个1维张量。
order ({'C','F', 'A', 'K'}, optional) -- 使用此索引顺序读取 a 中的元素。'C' 表示按行主序(C 风格)索引元素,最后一个轴索引变化最快,第一个轴索引变化最慢。'F' 表示按列主序(Fortran 风格)索引元素,第一个索引变化最快,最后一个索引变化最慢。注意,'C' 和 'F' 选项不考虑底层数组的内存布局,仅涉及轴索引的顺序。'A' 表示如果 a 在内存中是 Fortran 连续 的,则以类似 Fortran 的索引顺序读取元素,否则按 C 风格顺序读取。'K' 表示按照元素在内存中出现的顺序读取,但在步长为负时会反转数据。默认使用 'C' 索引顺序。
- 返回:
y -- 如果 a 是矩阵,则 y 是一个1维张量;否则 y 是与 a 相同子类型的张量。返回数组的形状为
(a.size,)。矩阵为向后兼容而做了特殊处理。- 返回类型:
array_like
参见
Tensor.flat数组上的1维迭代器。
Tensor.flatten按行主序排列的数组元素的1维数组副本。
Tensor.reshape在不改变数据的情况下改变数组的形状。
示例
它等价于
reshape(-1)。>>> import maxframe.tensor as mt
>>> x = mt.array([[1, 2, 3], [4, 5, 6]]) >>> print(mt.ravel(x).execute()) [1 2 3 4 5 6]
>>> print(x.reshape(-1).execute()) [1 2 3 4 5 6]
>>> print(mt.ravel(x.T).execute()) [1 4 2 5 3 6]
>>> a = mt.arange(12).reshape(2,3,2).swapaxes(1,2); a.execute() array([[[ 0, 2, 4], [ 1, 3, 5]], [[ 6, 8, 10], [ 7, 9, 11]]]) >>> a.ravel().execute() array([ 0, 2, 4, 1, 3, 5, 6, 8, 10, 7, 9, 11])