首页  >  文章  >  后端开发  >  -1 在 NumPy 的 .reshape() 数组重塑方法中起什么作用?

-1 在 NumPy 的 .reshape() 数组重塑方法中起什么作用?

Susan Sarandon
Susan Sarandon原创
2024-10-20 22:16:02379浏览

What Role Does -1 Play in NumPy's .reshape() Method for Array Reshaping?

NumPy 的 .reshape() 方法中 -1 是什么意思?

NumPy 中,.reshape() 方法用于修改多维数组的形状。有趣的是,值 -1 可以用于以特定方式重塑数组。

理解 -1 的概念

在 NumPy 中,-1 表示未知数用于重塑数组的维度。当您提供 -1 作为形状参数之一时,您指定应自动计算形状以满足某些条件。

与原始形状的兼容性

至关重要重塑数组的条件是新形状必须与原始形状兼容。这意味着重构后的数组中的元素数量必须与原始数组中的元素数量相匹配。

推断未知维度

NumPy 通过以下方式计算未知维度考虑数组的长度和其他指定的维度。它确保新形状满足上述兼容性条件。

示例

考虑以下 NumPy 数组:

<code class="python">z = np.array([[1, 2, 3, 4],
         [5, 6, 7, 8],
         [9, 10, 11, 12]])</code>

其原始形状是 (3, 4)。

用 (-1) 重塑

用 (-1) 作为唯一参数重塑 z 给我们一个一维数组,其中包含所有元素:

<code class="python">z.reshape(-1)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])</code>

使用 (-1, 1) 重塑

使用 (-1, 1) 重塑创建一个包含未知行和一列的数组:

<code class="python">z.reshape(-1, 1)
array([[ 1],
   [ 2],
   [ 3],
   [ 4],
   [ 5],
   [ 6],
   [ 7],
   [ 8],
   [ 9],
   [10],
   [11],
   [12]])</code>

使用 (-1, 2) 重塑

使用 (-1, 2) 会产生包含未知行和两列的数组:

<code class="python">z.reshape(-1, 2)
array([[ 1,  2],
   [ 3,  4],
   [ 5,  6],
   [ 7,  8],
   [ 9, 10],
   [11, 12]])</code>

使用 (1, -1) 重塑

使用 (1, -1) 重塑创建一个包含一行和未知列的数组:

<code class="python">z.reshape(1,-1)
array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])</code>

使用 (-1, -1) 重塑

但是,如果将两个维度都指定为 -1,NumPy 将引发 ValueError,因为它无法唯一确定新形状。

以上是-1 在 NumPy 的 .reshape() 数组重塑方法中起什么作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn