我是Numpy的新手并且试图理解什么是尺寸的基本问题,
我尝试了以下命令并试图理解为什么最后2个数组的ndim是相同的?
>>> a= array([1,2,3])
>>> a.ndim
1
>>> a= array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> a.ndim
2
>>> a=arange(15).reshape(3,5)
>>> a.ndim
2
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
Run Code Online (Sandbox Code Playgroud)
我的理解..
Case 1:
array([[1, 2, 3],
[4, 5, 6]])
2 elements are present in main lists, so ndim is-2
Case 2:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
Run Code Online (Sandbox Code Playgroud)
主列表中有3个元素,ndim为-3
ato*_*3ls 12
所述shape
阵列的是其尺寸的一个元组.具有一个维度的数组具有(n,)的形状.二维数组的形状为(n,m)(与情况2和3类似),三维数组的形状为(n,m,k),依此类推.
因此,虽然你的第二个和第三个例子的形状不同,但是没有.两种情况下的尺寸均为2:
>>> a= np.array([[1,2,3],[4,5,6]])
>>> a.shape
(2, 3)
>>> b=np.arange(15).reshape(3,5)
>>> b.shape
(3, 5)
Run Code Online (Sandbox Code Playgroud)
如果您想在示例中添加其他维度,则必须执行以下操作:
a= np.array([[[1,2,3]],[[4,5,6]]])
Run Code Online (Sandbox Code Playgroud)
要么
np.arange(15).reshape(3,5,1)
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式继续添加尺寸:
一个维度:
>>> a = np.zeros((2))
array([ 0., 0.])
>>> a.shape
(2,)
>>> a.ndim
1
Run Code Online (Sandbox Code Playgroud)
两个维度:
>>> b = np.zeros((2,2))
array([[ 0., 0.],
[ 0., 0.]])
>>> b.shape
(2,2)
>>> b.ndim
2
Run Code Online (Sandbox Code Playgroud)
三个维度:
>>> c = np.zeros((2,2,2))
array([[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]])
>>> c.shape
(2,2,2)
>>> c.ndim
3
Run Code Online (Sandbox Code Playgroud)
四个维度:
>>> d = np.zeros((2,2,2,2))
array([[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]],
[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]]])
>>> d.shape
(2,2,2,2)
>>> d.ndim
4
Run Code Online (Sandbox Code Playgroud)