Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 关于numpy数组的维数问题_Python_Arrays_Numpy_Numpy Ndarray - Fatal编程技术网

Python 关于numpy数组的维数问题

Python 关于numpy数组的维数问题,python,arrays,numpy,numpy-ndarray,Python,Arrays,Numpy,Numpy Ndarray,我正在同时学习物理和数学。Numpy说我的3x3矩阵是二维的,但在我的物理书或3blue1brown《线性代数的本质》中,3x3矩阵是三维的 #a '2d' array, created using identity i2d = np.identity(3) print(i2d) print('this is a %s-D array, shape is %s with %s elements'%(i2d.ndim, i2d.shape, i2d.size)) YIELDS: [[

我正在同时学习物理和数学。Numpy说我的3x3矩阵是二维的,但在我的物理书或3blue1brown《线性代数的本质》中,3x3矩阵是三维的

#a '2d' array, created using identity
i2d = np.identity(3)  

print(i2d)

print('this is a %s-D array, shape is %s with %s elements'%(i2d.ndim, i2d.shape, i2d.size))


YIELDS:

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
this is a 2-D array, shape is (3, 3) with 9 elements

在线性代数中,这定义了一个具有3个垂直基向量的三维空间。任何人都知道我遗漏了什么。

在numpy中,
shape
属性提供了
(3,3)
并表示行和列的数量-在物理上下文中,长度为3的3个基向量构成了三维空间的基础

数组的Numpy
ndim
属性引用数组的“嵌套”数量。你有一个数组,所以你有两个维度

通常,如果数组的元素是数组本身,则维度为2。要访问这样的数组中的任何元素,您需要两个索引,每个维度一个索引。i、 e.
arr[i][j]

如果数组的元素是数组,并且这些数组的元素也是数组,则维度为3,需要3个索引才能访问任何元素,即
arr[i][j][k]
。您的嵌套数组结构如下所示:

[
[ 
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
],
[ 
[ 1, 0, 0 ],
[ 0, 1, 0 ],
[ 0, 0, 1 ]
],
...
]
从物理意义上讲,
shape
属性应该是您所关注的


对于3-空间的基,3x3矩阵。对于4维空间、4x4矩阵等的基础。

矩阵可以表示任意n维空间中的线性变换,或者表示从n维空间中提取的一组数据点,但矩阵本身的维数是不同的。