今天遇到了这个问题,感觉跟之前的认识不一样,所以记录一下:
numpy.ndim
查看网上的定义:
感觉Python 中一些概念跟数学不是很一致,这里使用了dimension,后边的解释还出现了rank,在线性代数里,我们理解这个 rank 是秩的意思吧,但是这里显然不是这样的,比如单位矩阵:
data = [[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]
arr1 = array(data)
这时候输出的arr1.ndim是2,后来找资料,可以这么理解:在数学里我们理解二维,三维空间,一个非常直观的就是二维平面中的点可以这样表示 (i, j) , 三维空间中则是 (i, j, k) 这个维就是这样,如果我们可以使用i,j两个坐标表示array中的一个数据,那么它的ndim就是2, i,j,k同理就是3了,测试一下:
from numpy import *
d1 = [[1,2],
[2, 3]]
a1 = array(d1)
d2 = [[[1, 2], [2,3]],
[[2, 3], [3, 4]]] #3维数组
a2 = array(d2)
print(a1.ndim) #2
print("-"*9)
print(a2.ndim) #3
这样就搞清楚这个dimension跟rank是什么意思了。
顺便说一下跟这个总在一块的属性,shape ,跟它的名字一样,就是数组的行、列数:
d2 = [[[1, 2], [2,3]],
[[2, 3], [3, 4]]]
a2 = array(d2)
print(a2.ndim)
print(a2.shape) #(2, 2, 2)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116777.html