Skip to main content

笔记

创建

>>> x = np.array([2,3,1,0])
>>> x = np.array([2, 3, 1, 0])
>>> x = np.array([[1,2.0],[0,0],(1+1j,3.)]) # note mix of tuple and lists,
and types
>>> x = np.array([[ 1.+0.j, 2.+0.j], [ 0.+0.j, 0.+0.j], [ 1.+1.j, 3.+0.j]])

零(形状)将创建一个用指定形状填充0值的数组。默认的数据类型是float64。:

>>> np.zeros((2, 3))
array([[ 0., 0., 0.], [ 0., 0., 0.]])

arange()将创建具有规则递增值的数组。请检查docstring以获取有关其各种使用方法的完整信息。这里将给出几个例子::

>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(2, 10, dtype=float)
array([ 2., 3., 4., 5., 6., 7., 8., 9.])
>>> np.arange(2, 3, 0.1)
array([ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])

linspace()将创建具有指定数量元素的数组,并在指定的开始值和结束值之间等距分布。例如:

>>> np.linspace(1., 4., 6)
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])

indexs()将创建一组数组(堆叠为一个更高维度的数组),每个维度一个数组,每个数组表示该维度中的变量。一个例子说明了比口头描述好得多:::

>>> np.indices((3,3))
array([[[0, 0, 0], [1, 1, 1], [2, 2, 2]], [[0, 1, 2], [0, 1, 2], [0, 1, 2]]])

索引

单元素索引

>>> x = np.arange(10)
>>> x[2]
2
>>> x[-2]
8

多维数组的多维索引

>>> x.shape = (2,5) # now x is 2-dimensional
>>> x[1,3]
8
>>> x[1,-1]
9

如果一个索引多维数组的索引少于维度,则会得到一个多维数组

>>> x[0]
array([0, 1, 2, 3, 4])

>>> x[0][2]
2

对数组进行切片和跨步

>>> x = np.arange(10)
>>> x[2:5]
array([2, 3, 4])
>>> x[:-7]
array([0, 1, 2])
>>> x[1:7:2]
array([1, 3, 5])
>>> y = np.arange(35).reshape(5,7)
>>> y[1:5:2]
array([[ 7, 8, 9, 10, 11, 12, 13],
[21, 22, 23, 24, 25, 26, 27]])
>>> y[1:5:2,::3]
array([[ 7, 10, 13],
[21, 24, 27]])

索引数组

>>> x = np.arange(10,1,-1)
>>> x
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
>>> x[np.array([3, 3, 1, 8])]
array([7, 7, 9, 2])
>>> x[np.array([3,3,-3,8])]
array([7, 7, 4, 2])
>>> x[np.array([[1,1],[2,3]])]
array([[9, 9],
[8, 7]])