Numpy 的 Reshape() 中的 -1 参数是通配符还是固定值?

Barbara Streisand
发布: 2024-10-20 22:15:02
原创
981 人浏览过

Is the -1 Parameter in Numpy's Reshape() a Wildcard or a Fixed Value?

理解 -1 在 Numpy Reshape 中的作用

在 Numpy 中, reshape() 方法允许转换数组形状。使用 2D 数组时,可以使用 reshape(-1) 将它们重塑为 1D 数组。例如:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])
登录后复制

通常,array[-1] 表示数组中的最后一个元素。然而,在 reshape(-1) 的上下文中,这具有不同的含义。

Reshape 中的 -1 参数

reshape(- 1) 用作通配符维度。这表明新形状的相应尺寸应自动确定。这是通过满足新形状必须与原始数组形状对齐并保留其线性维度的标准来完成的。

Numpy 允许在形状参数之一中使用 -1,从而能够指定未知维度。例如,(-1, 3) 或 (2, -1) 是有效形状,而 (-1, -1) 则不是。

重塑 (-1) 的示例

考虑以下数组:

z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
登录后复制

使用 (-1) 重塑:

z.reshape(-1)
# Output: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
# New shape: (12,)
登录后复制

使用 (-1, 1) 重塑(单一特征):

z.reshape(-1, 1)
# Output: array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10],
#                [11], [12]])
# New shape: (12, 1)
登录后复制

使用 (-1, 2) 重塑(单行):

z.reshape(1, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])
# New shape: (1, 12)
登录后复制

使用 (2, -1) 重塑:

z.reshape(2, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6], [ 7,  8,  9, 10, 11, 12]])
# New shape: (2, 6)
登录后复制

使用重塑(3, -1)(原始形状):

z.reshape(3, -1)
# Output: array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# New shape: (3, 4)
登录后复制

请注意,将两个尺寸指定为 -1,即 (-1, -1),将导致错误。

通过理解 reshape() 中 -1 的意义,开发人员可以有效地转换数组形状,以满足他们在 Numpy 中的特定数据处理需求。

以上是Numpy 的 Reshape() 中的 -1 参数是通配符还是固定值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!