numpy.array 的shape属性理解
在码最邻近算法(K-Nearest Neighbor)的过程中,发现示例使用了numpy的array数组管理,其中关于array数组的shape(状态)属性,下面是对应的理解
numpy 创建的数组都有一个shape属性,它是一个元组,返回各个维度的维数。有时候我们可能需要知道某一维的特定维数。
二维情况
>>> import numpy as np >>> y = np.array([[1,2,3],[4,5,6]]) >>> print(y) [[1 2 3] [4 5 6]] >>> print(y.shape) # 展示行数,列数 (2, 3) >>> print(y.shape[0]) # 展示行数 2 >>> print(y.shape[1]) # 展示列数 3
可以看到y是一个两行三列的二维数组,y.shape[0]代表行数,y.shape[1]代表列数。
三维情况
>>> x = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[0,1,2]],[[3,4,5],[6,7,8]]]) >>>> print(x) [[[1 2 3] [4 5 6]] [[7 8 9] [0 1 2]] [[3 4 5] [6 7 8]]] >>> print(x.shape) #展示 降维度出来的低维度个数,行数,列数 (3, 2, 3) >>> print(x.shape[0]) # 降为出来的低维度个数 3 >>> print(x.shape[1]) # 每个低维度数组的行数 2 >>> print(x.shape[2]) # 每个低维度数组的列数 3
可以看到x是一个包含了3个两行三列的二维数组的三维数组,x.shape[0]代表包含二维数组的个数,x.shape[1]表示二维数组的行数,x.shape[2]表示二维数组的列数。
总结
可以看到,shape[0]表示最外围的数组的维数,shape[1]表示次外围的数组的维数,数字不断增大,维数由外到内。