Numpy数组维度
我目前正在努力学习Numpy和Python。 给定以下数组:
import numpy as N a = N.array([[1,2],[1,2]])
有没有一个函数返回a
(ega是2乘2arrays)的维度?
size()
返回4,这并没有太大的帮助。
它是。 .shape
:
ndarray。 形状
数组维度的元组。
从而:
>>> a.shape (2, 2)
import numpy as N >>> N.shape(a) (2,2)
如果input不是一个numpy数组,而是列表的列表,也适用
>>> a = [[1,2],[1,2]] >>> N.shape(a) (2,2)
第一:
按照惯例,在Python世界中, numpy
的快捷键是np
,所以:
In [1]: import numpy as np In [2]: a = np.array([[1,2],[3,4]])
第二:
在Numpy中, 尺寸 , 轴/轴 , 形状是相关的,有时也是类似的概念:
尺寸
在math/物理中 ,维度或维度被非正式地定义为指定空间内的任何点所需的最小坐标数量。 但在Numpy中 ,根据numpy文档 ,它和axis / axes是一样的:
在Num尺寸被称为轴。 轴的数量是等级。
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension* Out[3]: 2
轴/轴
在Numpy中索引array
的第n个坐标。 multidimensional array每个轴可以有一个索引。
In [4]: a[1,0] # to index `a`, we specific 1 at the first axis and 0 at the second axis. Out[4]: 3 # which results in 3 (locate at the row 1 and column 0, 0-based index)
形状
描述每个可用轴上有多less数据(或范围)。
In [5]: a.shape Out[5]: (2, 2) # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
你可以使用.shape
In: a = np.array([[1,2,3],[4,5,6]]) In: a.shape Out: (2, 3) In: a.shape[0] # x axis Out: 2 In: a.shape[1] # y axis Out: 3
shape
方法要求是一个Numpy的ndarray。 但是Numpy也可以计算纯python对象的迭代器的形状:
np.shape([[1,2],[1,2]])