深度学习与目标检测:工具、原理与算法
上QQ阅读APP看书,第一时间看更新

2.3.3 获取NumPy属性

首先,我们通过NumPy中的arange(n)方法,生成0到n-1的数组。比如我们输入np.arange(15),可以看到返回的结果是array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]。

然后,通过NumPy中的reshape(row,column)方法,自动构建一个多行多列的array对象。

比如,我们输入如下命令。


a = np.arange(15).reshape(3,5),代表3行5列

返回结果如下。


array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

有了基本数据之后,可以通过NumPy提供的shape属性获取NumPy数组的行数与列数。


print(a.shape)

可以看到返回的结果是一个元组(tuple),数字3代表3行,数字5代表5列。


(3, 5)

轮到你来

通过arange()和reshape()方法定义一个NumPy数组,然后通过Python的print方法打印出数组的shape值(返回的应该是一个元组类型)。

我们可以通过.ndim属性获取NumPy数组的维度,下面举两个例子。


import numpy as np
x = np.arange(15)
print(x.ndim) #输出x向量的维度,这时能看到的维度是1维
X = x.reshape(3,5) #将x向量转为3行5列的二维矩阵
Print(X.ndim) #输出X矩阵的维度,这时能看到的维度是2维

reshape()方法的特别用法:如果用户只关心需要多少行或者多少列,其他由计算机自己来算,则可以使用如下方法。


x.reshape(15,-1) #我只关心我要15行,列由计算机自己来算
x.reshape(-1,15) #我只关心我要15列,行由计算机自己来算