- 前言
- 一维数组
- ndim:
- shape:
- 多维数组
- 一个小思考
在构建神经网络里对一个小例子产生了兴趣
一维数组我们简单的写个例子
import numpy as np A = np.array([1,2,3,4]) print(np.ndim(A)) # 1 print(A.shape) # (4,)
这里对于ndim与shape分别做个解释:
ndim:
即数组的维数
即数组的形状(维度),返回类型元组
这里我们注意到此时的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



