NumPy一维数组shape属性返回(3,)的结果解析请求
解释NumPy一维数组的shape返回(3,)
首先,NumPy的shape属性本质上返回的是一个元组,用来描述数组在每个维度上的元素个数,所有维度的形状都用元组统一表示,这是NumPy的设计规范。
- 对于多维度数组,比如二维数组
np.array([[1,2],[3,4]]),shape返回(2,2),元组里的两个数字分别对应行、列维度的元素数量。 - 而一维数组只有一个维度,按道理只需要一个数字就能说明元素数量,但元组的语法规则是:如果元组内只有单个元素,必须在元素后加逗号
(3,),否则(3)会被Python识别成普通的整数表达式,而非元组。NumPy为了保持所有shape返回值的类型一致(都是元组),所以一维数组的形状会写成(3,)。
举个简单的语法对比:
print(type((3,))) # 输出 <class 'tuple'> print(type((3))) # 输出 <class 'int'>
另外需要注意:一维数组没有“行”或“列”的概念,(3,)仅表示这个唯一维度上有3个元素。如果你需要类似行向量/列向量的二维结构,可以这样创建:
# 行向量(二维,1行3列) row_array = np.array([[4,5,6]]) print(row_array.shape) # 输出 (1, 3) # 列向量(二维,3行1列) col_array = np.array([[4],[5],[6]]) print(col_array.shape) # 输出 (3, 1)
内容的提问来源于stack exchange,提问作者Mahek Parmar
相关产品推荐
相关产品推荐

