今天被学弟鄙视了哈哈,赶紧分享:Python中的shape[0]、shape[1]和shape[-1],作为撸代码10多年的码农-Today, I was despised by my fellow students haha, hurry to share: shape[0], shape[1] and shape[-1] in Python, as a code farmer for more than 10 years

前言

最近项目小伙伴问我一下问题,把我难住了,😀,

详解

我们知道在Python中的数组和张量的shape属性中:

  • shape[0] 表示数组的第一个维度大小,通常是行数

  • shape[1] 表示数组的第二个维度大小,通常是列数

  • shape[-1] 表示数组的最后一个维度大小

    举个例子:

python
import numpy as np

# 一个3行2列的数组
arr = np.array([[1, 2], [3, 4], [5, 6]]) 
print(arr.shape) # (3, 2)

# shape[0] 是3,表示3行
print(arr.shape[0]) # 3

# shape[1] 是2,表示2列
print(arr.shape[1]) # 2 

# shape[-1] 也是2,因为最后一个维度是列数
print(arr.shape[-1]) # 2

所以对一个n维数组而言:

  • shape[0]到shape[n-2]表示数组每个维度的大小
    - shape[n-1]和shape[-1]都表示数组最后一个维度的大小在很多情况下,我们会利用shape[0]和shape[1]来获取数组的行列大小,利用shape[-1]来统一获取最后一个维度的大小。

    所以这三个的主要区别是:

    • shape[0]和shape[1]分别表示数组的行数和列数

    • shape[-1]表示数组的最后一维的大小,可以用于不确定数组维度情况下获取最后一维.

我们知道shape函数是Numpy中的函数,用于获取数组的维度信息:

具体来说:

  • .shape 可以获取数组的完整维度信息,以元组的形式返回,比如(2, 3)表示2维数组,有2行3列

  • shape[0]表示数组的第一个维度大小,通常是行数

  • shape[1]表示数组的第二个维度大小,通常是列数

  • shape[2]表示数组的第三个维度大小,依此类推

  • shape[-1]表示数组的最后一个维度大小,对任何维数组都表示最后一维的大小

  • shape[-2], shape[-3]等表示倒数第二,第三个维度的大小

    举几个例子:

    二维数组:

python
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)     # (2, 3)
print(arr.shape[0])  # 2  行数
print(arr.shape[1])  # 3  列数
print(arr.shape[-1]) # 3  列数

三维数组:

python
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr.shape)     # (2, 2, 3)
print(arr.shape[0])  # 2   第一个维度
print(arr.shape[1])  # 2   第二个维度  
print(arr.shape[2])  # 3   第三个维度

图像:

python
img = np.arange(12).reshape(3, 4)  
print(img.shape)     # (3, 4) 
print(img.shape[0])  # 3   高
print(img.shape[1])  # 4   宽
print(img.shape[-1]) # 4   宽

所以综上,.shape 以及 shape[] 的下标访问是获取Numpy数组维度信息的重要方式,可以灵活使用 shape[0], shape[1], shape[-1]等来获取对应维度的大小。

O(∩_∩)O哈哈~,以后我们可要抓紧时间学习,别到时候被学弟给鄙视了,😀工作这么多年,被这个问题给难住了哈哈

今天被学弟鄙视了哈哈,赶紧分享:Python中的shape[0]、shape[1]和shape[-1],作为撸代码10多年的码农-Today, I was despised by my fellow students haha, hurry to share: shape[0], shape[1] and shape[-1] in Python, as a code farmer for more than 10 years

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

滚动到顶部