Python中的NumPy Squeeze

2025年1月5日 | 阅读6分钟

引言

在本教程中,我们将学习 Python 中的 NumPy squeeze。我们想要去除某些变量的大小,因此我们在 NumPy 中使用一个名为“squeeze()”的函数。在这种情况下,我们使用 NumPy 的 squeeze() 函数,它接受一个数组名称和一个轴参数。squeeze() 函数返回一个数组,该数组的长度是输入数组长度的一个子集,其中长度等于 1。当我们想从目录的图像中移除单一维度的条目时,我们可以使用 numpy.squeeze() 函数。

语法

NumPy squeeze 在 Python 中的语法如下:

参数

NumPy squeeze 在 Python 中的参数如下:

  • arr: [array_like] 这是输入数组。
  • axis=None: axis 的值可以是 None、int 或 int 的元组] 这是一个可选参数。它选择图像中单一维度输入的子集。如果选定轴的输入值大于 1,则会发生错误。

返回值

NumPy squeeze 在 Python 中的返回值如下:

squeezed [ndarray] 输入数组,其中所有或一个长度为 1 的维度已被移除。这始终是 arr 本身或 arr 的一个外观。

NumPy squeeze 在 Python 中的工作原理是什么?

NumPy squeeze 在 Python 中的工作原理如下:

  1. 当我们想要从多维数组中移除维度时,我们在 NumPy 中使用名为“squeeze()”的函数。例如,如果我们想将一个三维数组转换为一个二维数组,那么我们可以在 NumPy 中使用 squeeze() 函数。
  2. NumPy 中的 squeeze() 函数接受两个参数,即 arr 和 axis。
  3. 使用 axis 选项指定数组在某个维度上的几何形状。其值必须是一个数字,并且不能超过数组的维数。
  4. squeeze() 函数返回一个数组,该数组的长度是输入数组长度的一个子集,其中长度等于 1。

程序代码 1

这里我们提供一个 NumPy squeeze 在 Python 中的程序代码。代码如下:

输出

现在,我们运行上面的代码,找到输入和输出数组以及它们的形状。输出如下:

The input array is: [[[3 3 3 3]
  [3 3 3 3]]]
The shape of the input array is: (1, 2, 4)
The output squeezed array is: [[3 3 3 3]
 [3 3 3 3]]
The shape of the output array is: (2, 4)

程序代码 2

这里我们提供另一个 NumPy squeeze 在 Python 中的程序代码。代码如下:

输出

现在,我们运行上面的代码,找到输入和输出数组以及它们的形状。输出如下:

The input array is: [[[0 1 2]
  [3 4 5]
  [6 7 8]]]
The output array is: [[0 1 2]
 [3 4 5]
 [6 7 8]]
The shape of the input and the output array is:
(1, 3, 3) (3, 3)

程序代码 3

这里我们提供另一个 NumPy squeeze 在 Python 中的程序代码。代码如下:

输出

现在,我们运行上面的代码,出现了一个值错误。输出如下:

The input array is: [[[0 1 2]
  [3 4 5]
  [6 7 8]]]
ERROR!
Traceback (most recent call last):
  File "<main.py>", line 8, in <module>
  File "/usr/local/lib/python3.11/site-packages/numpy/core/fromnumeric.py", line 1558, in squeeze
    return squeeze(axis=axis)
           ^^^^^^^^^^^^^^^^^^
ValueError: cannot select an axis to squeeze out which has size not equal to one

程序代码 4

这里我们提供另一个 NumPy squeeze 在 Python 中的程序代码。该 Python 程序演示了创建三维数组并将创建的三维数组图像转换为二维数组的过程。代码如下:

输出

现在,我们运行上面的代码,找到输入和输出数组以及它们的形状。安装 NumPy 库以支持数组、形状和 squeeze 等功能。NumPy 中的 array 函数用于创建存储在 arr 变量中的三维数组。然后显示 arr 的元素,后跟由 \n 表示的空行。然后使用 NumPy 中的 squeeze 函数将新创建的三维数组压缩为二维数组。输出如下:

The input array is:
[[[1 3 3 2]
  [1 5 6 8]
  [7 0 1 4]]]


The shape of the input array is:
(1, 3, 4)


The output squeezed array is:
[[1 3 3 2]
 [1 5 6 8]
 [7 0 1 4]]


The shape of the output array is:
(3, 4)

结论

在本教程中,我们学习了 Python 中的 NumPy squeeze。我们学习了 NumPy squeeze 在 Python 中的语法和参数。它是一种从序列的原始形状中移除条目的方法。我们可以通过一些例子来理解 NumPy squeeze() 函数的不同用法。我们看到了当 axis 值大于或等于 1 时会发生 ValueError 的特殊情况。