Python学习:Python numpy ndarray.shape以及ndarray.ndim问题

Python numpy ndarray.shape问题以及ndarray.ndim问题

1. ndarray.dim

按我的理解,numpy里面的dimension定义特指嵌套的层数,而不是按照矩阵中dimension的定义计算,我一开始也非常困惑,看了知乎“张伊”大佬的回答才明白
例:

c=np.array(
    [1, 2, 3, 4]
    )
print('Dimension:'+str(c.ndim))
PS C:\Users\Yooooooooooooooooomu\Desktop\torment-master> python test02.py
Dimension:1

c=np.array(
    [[1, 2, 3, 4]]
    )
print('Dimension:'+str(c.ndim))
PS C:\Users\Yooooooooooooooooomu\Desktop\torment-master> python test02.py
Dimension:2

以此类推。

ndarray.shape

按照我的理解,shape返回的是每一层元素的个数,由外向内。
例:

	c=np.array(
    [
    [
        [[1],[1]],
        [[1],[1]],
        [[1],[1]]
    ],
    [
        [[1],[1]],
        [[1],[1]],
        [[1],[1]]
    ],
    [
        [[1],[1]],
        [[1],[1]],
        [[1],[1]]
    ],
    [
        [[1],[1]],
        [[1],[1]],
        [[1],[1]]
    ]
    ]
    )
print('shape:'+str(c.shape))

可以看到,这是一个嵌套了四层的ndarray,最外层套了四个第三层的数组,每一个第三层数组又包含三个二层数组,每一个二层数组又包含了两个一层数组,一层数组包含一个元素,则shape返回值为(4,3,2,1)

PS C:\Users\Yooooooooooooooooomu\Desktop\torment-master> python test02.py
shape:(4, 3, 2, 1)

这个问题查了很多文章都没有找到详细的解答,希望这篇文章能帮到更多遇到同样问题的人。
本人是python小白,文章有问题欢迎各位大神指点。

参考:
【1】知乎大神“张伊”的回答 https://www.zhihu.com/question/64894713
【2】官方文档
https://numpy.org/doc/stable/reference/generated/numpy.ndarray.shape.html

你可能感兴趣的:(python)