numpy.shape()函数

本文详细介绍了NumPy库中shape()函数的使用方法,包括如何查看list、array和matrix等数据结构的维度信息。通过实例演示了不同数据类型下shape()函数的返回值,以及如何获取一维和二维数据的具体长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章:https://blog.youkuaiyun.com/Mr_Cat123/article/details/78841747

  1. shape() 查看或数组的维数
    shape函数返回list,array,matrix等的一维和二维长度值。

1)list列表
列表只有一维,二维为0

import numpy as np
a = [1,2,3]
print(np.shape(a))
输出结果:(3,)

a.shape[0]
显示:AttributeError                            Traceback (most recent call last)
<ipython-input-2-78b9b49c6e77> in <module>()
      2 a = [1,2,3]
      3 print(np.shape(a))
----> 4 a.shape[0]

AttributeError: 'list' object has no attribute 'shape'

注意:列表没有shape函数

2)array数组

import numpy as np
a = np.eye(4,3)
print(a)
输出结果:[[ 1.,  0.,  0.],
          [ 0.,  1.,  0.],
          [ 0.,  0.,  1.],
          [ 0.,  0.,  0.]]
print(np.shape(a))
输出结果:(4, 3)

print(a.shape[0])
输出结果:4

print(a.shape[1])
输出结果:3

上面建立了一个4x3的数组,
第一个维度是4(即第一层中括号里面的列表数量),矩阵的行数
第二个维度是3(即每二层中括号里的元素个数),矩阵的列数

3)matrix

import numpy as np
from numpy import mat
b = mat([[1,2,3],[2,3,5]])
print(b)
输出结果:[[1 2 3]
          [2 3 5]]
print(np.shape(b))
输出结果:(2, 3)
### 使用 `numpy.shape` 获取数组维度 在 Python 中,`numpy` 提供了一个属性 `.shape` 来获取数组的形状(即各维度上的大小)。`.shape` 返回的是一个元组,表示该数组每一维的长度。如果是一个二维数组,则返回 `(行数, 列数)`;如果是三维或多维数组,则依次类推。 以下是具体说明: #### 基本语法 对于任意 Numpy 数组 `arr`,可以通过以下方式访问其形状: ```python import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.shape) # 输出 (2, 3),表示有两行三列 ``` 上述代码展示了如何通过 `.shape` 属性来查看数组的具体尺寸[^1]。 #### 多维数组的情况 当处理更高维度的数据时,`.shape` 同样适用。例如,创建一个三维数组并打印其形状: ```python b = np.arange(24).reshape(2, 3, 4) print(b.shape) # 输出 (2, 3, 4),表示这是一个 2×3×4 的三维数组 ``` 这里可以看到,`np.arange(24).reshape(2, 3, 4)` 创建了一个具有指定形状的三维数组,并且 `.shape` 正确反映了这一结构[^2]。 #### 修改数组形状后的效果 需要注意的是,在调用某些函数修改数组形状之后,原数组的 `.shape` 可能会发生变化。比如使用 `ravel()` 或者重新设置 `.shape` 属性都会影响到最终的结果。例如: ```python c = b.ravel() print(c.shape) # 输出 (24,),因为 ravel 将多维数组展平成了一维数组 ``` 此例子表明,经过 `ravel()` 方法处理后,原本复杂的多维数据被转换成了单一的一维向量形式[^3]。 另外一种情况是对现有数组直接调整其外形参数: ```python d = np.arange(12).reshape(3, 4) d.shape = (6, 2) print(d.shape) # 输出 (6, 2),显示新的行列配置已经生效 ``` 这段程序片段进一步验证了我们能够灵活操控 ndarray 对象的空间布局而不必担心底层存储模式的变化。 综上所述,无论是简单的矩阵还是复杂的大规模张量,都可以借助于 `.shape` 轻松读取它们当前所处的状态信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值