我是一个新手,并试图了解什么是维度的基本问题,
我尝试了以下命令,并试图了解为什么最后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]])
我的理解是...
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]])
主列表中存在3个元素,do ndim为-3
2条答案
按热度按时间2exbekwf1#
一个数组的
shape
是它的维数的元组。一个一维数组的形状是(n,)。一个二维数组的形状是(n,m)(就像你的例子2和3),一个三维数组的形状是(n,m,k)等等。因此,虽然第二个和第三个示例的形状不同,但两种情况下的尺寸均为2:
如果你想在你的例子中添加另一个维度,你必须这样做:
或
您可以通过以下方式继续添加维:
一维:
两个维度:
三个维度:
四个维度:
klsxnrf12#
虽然@atomh33ls有一个很棒的书面答案,但我生成了这个可视化视图,以帮助沟通
numpy.ndarray.shape
和numpy.ndarray.ndim
之间的差异。在此视觉效果中,
ndim
会随着每一个新滑杆移动到1以上而增加。当m
设定为1,并以shape
(1,)
定义一维ndarray
时,会先看到这种情况。请注意,我使用
m
、n
和k
来表示每个附加维度的长度。