size和shape的区别与联系

对于Numpy数据类型

shape和size都是属于Numpy的属性

  • arr.shape 将返回一个包含两个元素的元组,例如 (m, n),其中 m 表示数组的行数,n 表示数组的列数。
  • arr.size 将返回数组中元素的总数。

 举例:

输入:

import numpy as np

# 创建一个 3x4 的二维数组
arr = np.array([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [9, 10, 11, 12]])

# 使用 shape 获取数组的维度信息
arr_shape = arr.shape

# 使用 size 获取数组中元素的总数
arr_size = arr.size

print("Array Shape:", arr_shape)  # 输出数组的形状,对应 (行数, 列数)
print("Array Size:", arr_size)    # 输出数组中元素的总数

 输出:

Array Shape: (3, 4)
Array Size: 12

对于Tensor数据类型

size是属于Tensor的方法,shape是属于Tensor的属性

  • tensor.shape 是沿用了Numpy的使用习惯
  • tensor.size ()是专属于tensor的返回数据形状的方法

所以上面两个返回的是一样的,只不过一个是属性一个是方法(属性调用的时候不用加(),但方法调用时需要加())

举例:

输入:

import torch
a =torch.tensor([[1, 2, 3, 4],
                [5, 6, 7, 8],
                [9, 10, 11, 12]])
print('a.shape')
print(a.shape)
print('a.size()')
print(a.size())

输出:

a.shape
torch.Size([3, 4])
a.size()
torch.Size([3, 4]

Numpy的size属性和Tensor的size()方法有什么关系

这两者之间并没有直接的关系。它们只是在不同的背景下为了类似的目的而命名相似

你可能感兴趣的:(python)