Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多维数组的形状表示什么?_Python_Numpy_Multidimensional Array - Fatal编程技术网

Python 多维数组的形状表示什么?

Python 多维数组的形状表示什么?,python,numpy,multidimensional-array,Python,Numpy,Multidimensional Array,二维阵列的形状意味着什么?它是否类似于数组中的行数和列数?对于3D或4D阵列,这意味着什么?考虑下面的例子: import numpy as np arr = np.array([[1]]) print(arr) # output: [[1]] print(arr.ndim) # output: 2 print(arr.shape) # output: (1, 1) 您自己说过它是一个2D数组,这意味着它有两个维度。 [[1]]是一个1 x 1的矩阵,这就是为什么将(1,1)作为输出 编辑:

二维阵列的形状意味着什么?它是否类似于数组中的行数和列数?对于3D或4D阵列,这意味着什么?考虑下面的例子:

import numpy as np

arr = np.array([[1]])
print(arr) # output: [[1]]
print(arr.ndim) # output: 2
print(arr.shape) # output: (1, 1)

您自己说过它是一个2D数组,这意味着它有两个维度。
[[1]]
是一个1 x 1的矩阵,这就是为什么将
(1,1)
作为输出

编辑:
问题:“对于[[1]],第二维度上没有元素,第二维度上的大小不应该为零吗”

答:在n维数组中,需要n个坐标来表示数组的任何元素。由于
[[1]]
是一个二维数组,您需要两个坐标,
(0,0)
来表示数组中的唯一元素。

可能您在可视化1x1数组时遇到问题

In [161]: arr = np.array([[1]])
In [162]: arr
Out[162]: array([[1]])
In [163]: arr.shape
Out[163]: (1, 1)
元素总数为1,即尺寸的乘积,1*1:

In [164]: arr.size
Out[164]: 1
如果我们选择1行,结果是1d数组(计算[])

具有2个索引的标量:

In [166]: arr[0,0]
Out[166]: 1
选择1列,再次选择1d

In [167]: arr[:,0]
Out[167]: array([1])

或考虑2x2数组:

In [168]: np.arange(4).reshape(2,2)
Out[168]: 
array([[0, 1],
       [2, 3]])
和2d切片:

In [169]: np.arange(4).reshape(2,2)[:1,:1]
Out[169]: array([[0]])

“当一个维度上只有一个元素时”-不,那里有两个维度。你看到了
print(arr.ndim)
print
2
。见鬼,你自己称它为2D数组。因为它不清楚。我现在已经完善了这个问题。请看更新后的问题并提供合适的答案。自从这个问题结束后,我一直无法提出新的问题。所以,如果你能再看看这个问题的开头,对我会有很大帮助。谢谢根据,数组的形状是一个整数元组,表示数组沿每个维度的大小。对于[[1]],第二维上没有元素,第二维上的大小不应该为零。不,你误解了数组(或矩阵)的含义@Sid:你似乎希望一个1乘1的数组有1+1个元素,而不是1*1个元素。元素不属于维度或类似的东西。
In [169]: np.arange(4).reshape(2,2)[:1,:1]
Out[169]: array([[0]])