前言
在构建神经网络里对一个小例子产生了兴趣
一维数组
我们简单的写个例子
import numpy as np
A = np.array([1,2,3,4])
print(np.ndim(A))
# 1
print(A.shape)
# (4,)
这里对于ndim与shape分别做个解释:
ndim:
即数组的维数
shape:
即数组的形状(维度),返回类型元组
这里我们注意到此时的A的ndim返回值是1,代表着1维
A的shape返回值是(4,)
那么问题来了:明明我们的A是[1,2,3,4],为什么返回值是(4,)?
这里我们依然要从官方文档解答
Returns:
The elements of the shape tuple give the lengths of the corresponding array dimensions.
翻译过来就是:形状元组的元素给出了相应数组维度的长度。
重点在维度的长度这块
那么一维的长度就和数组里的元素个数有关系,所以是4
可是那为什么是(4,)呢?
因为一维数组的情况下也要返回和多维数组的情况下一致的结果
例如,二维数组时返回的是元组(4,3),三维数组时返回的是元组(4,3,2)
因此一位数字时也同样以元组的形式返回结果
多维数组
这里我们以二维数组为例
import numpy as np
A = np.array([[1,2,3,4],[5,6,7,8]])
print(np.ndim(A))
# 2
print(A.shape)
# (2,4)
该情况下ndim就是数组的维度:2
shape就是对应着2行,4列:(2,4)
一个小思考
如果把A换成了
A = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
那么A的ndim是多少呢?
还是2
因为不管A是几行几列
始终是属于2维的范畴
只有A变成了三维
才满足A.ndim=3