NumPy中np.shape(X[1])与X.shape[0]的区别是什么
NumPy中
np.shape(X[1])与X.shape[0]的差异说明 二者是完全独立的两种操作,返回值不存在必然关联,核心差异如下:
- 含义完全不同
X.shape[0]是读取原数组X首个维度(最外层维度)的长度;np.shape(X[1])是先取原数组X首个维度下标为1的切片/元素,再读取这个切片/元素的形状。 - 返回值类型不同
X.shape[0]永远返回整数标量;np.shape()的返回结果永远是元组,哪怕对应元素是标量也会返回空元组()。 - 运行约束不同
只要X是合法的NumPy数组,X.shape[0]就可以正常返回值;但np.shape(X[1])要求原数组首个维度的长度至少为2,否则会触发索引越界错误。 - 数值没有必然相关性
除非特殊构造的数组,否则二者的取值没有对应关系:比如形状为(3,4,5)的三维数组,X.shape[0]为3,np.shape(X[1])为(4,5);形状为(2,6)的二维数组,X.shape[0]为2,np.shape(X[1])为(6,);形状为(5,)的一维数组,X.shape[0]为5,np.shape(X[1])为()。
可以参考如下代码示例更直观理解:
import numpy as np # 三维数组示例 X = np.ones((3,4,5)) print(X.shape[0]) # 输出:3 print(np.shape(X[1])) # 输出:(4, 5) # 二维数组示例 X = np.ones((2,6)) print(X.shape[0]) # 输出:2 print(np.shape(X[1])) # 输出:(6,) # 一维数组示例 X = np.ones((5,)) print(X.shape[0]) # 输出:5 print(np.shape(X[1])) # 输出:()
内容的提问来源于stack exchange,提问作者user17181673
相关产品推荐
相关产品推荐

