【问题标题】:What does (X.shape[0], -1) mean? What does the -1 stand for?(X.shape[0], -1) 是什么意思? -1 代表什么?
【发布时间】:2023-02-02 21:10:58
【问题描述】:
X_flatten = X.reshape(X.shape[0], -1).T  

没想到代码中的-1

【问题讨论】:

标签: python numpy


【解决方案1】:

-1 用于指定整形数组中的列数,其值将根据 X 中的元素总数和 X.shape[0] 的值推断得出。因此,当 X 被整形时,-1 将被自动替换为适当的值,以确保整形数组中的元素总数不变。

例如,如果 X.shape is (100, 200, 300),则 X.shape[0]=100。用(X.shape[0], -1) 重塑 X 后,重塑 X 的形状将为 (100, 60000)。 -1 已被推断为 60000,因为 60000 = 200 * 300。

【讨论】:

    【解决方案2】:

    我们可以通过查看 documentation of numpy 来弄清楚。您可以通过谷歌搜索 numpy reshape documentation 找到该页面。

    有这部分,我发现CTRL键F搜索-1

    新形状:整数或整数元组
    新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。外形尺寸可以是-1。在这种情况下,该值是根据数组的长度和剩余维度推断出来的。

    在页面的下方,有一个示例:

    >>> np.reshape(a, (3,-1))       # the unspecified value is inferred to be 2
    array([[1, 2],
           [3, 4],
           [5, 6]])
    

    因此我们可以得出结论,-1 被推断为任何有意义的数字,因此重塑数组中的元素数量与原始数组中的元素数量相同。这也是为什么只有一个的维度可能是-1——如果有多个,就不可能知道你想要什么。

    【讨论】:

      【解决方案3】:

      numpy.reshape 具有三个参数:(a, newshape, order='C')。这里-1定义了第二个参数:newshape

      "newshape: 整数或整数元组

      新形状应与原始形状兼容。如果是整数,则结果将是该长度的一维数组。一个形状维度可以是 -1。在这种情况下,该值是根据数组的长度和剩余维度推断出来的

      Source

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-27
        • 2018-09-25
        • 1970-01-01
        • 2017-02-23
        • 2019-04-25
        • 2017-05-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多