Chapter 3 Numpy
numpy 提供了一组高效处理数组的工具.
这个图有点误导性. 当数组是二维的时候, axis0 表示行, axis 表示列. 当数组是三维的时候, axis0 表示的则是不同的二维数组, axis1表示行, axis2 表示列
3.1 创建array 数组
## array([1, 2, 3])
## array([[1., 2., 3., 4.],
## [2., 3., 4., 5.]])
## array([[[1., 2., 3.],
## [2., 3., 4.]],
##
## [[1., 1., 1.],
## [2., 2., 2.]]])
3.2 创建特殊数组
下面这些函数可以快速的创建数组
## array([[[0., 0., 0.],
## [0., 0., 0.]],
##
## [[0., 0., 0.],
## [0., 0., 0.]]])
## array([[[1., 1., 1.],
## [1., 1., 1.]],
##
## [[1., 1., 1.],
## [1., 1., 1.]]])
## array([10, 15, 20])
## array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
## array([[[7, 7],
## [7, 7]],
##
## [[7, 7],
## [7, 7]]])
## array([[1., 0., 0.],
## [0., 1., 0.],
## [0., 0., 1.]])
## array([[[0.01275371, 0.21964652],
## [0.77847549, 0.20543379]],
##
## [[0.54901096, 0.43877933],
## [0.61943631, 0.76193646]]])
## array([0.5397098 , 0.66997373, 0.72657924, 0.79385136, 0.20519991,
## 0.69418452, 0.17390961, 0.25323318, 0.04559041, 0.89642563])
## array([[2.68156159e+154, 2.68156159e+154],
## [9.88131292e-324, 2.83587762e-309]])
3.7 数组函数
3.7.1 数组算数运算
## array([[[-0.34690224, -0.3208587 ],
## [ 0.46689173, 0.31333901]],
##
## [[-0.03213382, 0.10831127],
## [-0.21276662, -0.10638115]]])
## array([[[-0.34690224, -0.3208587 ],
## [ 0.46689173, 0.31333901]],
##
## [[-0.03213382, 0.10831127],
## [-0.21276662, -0.10638115]]])
## array([[[0.45015366, 1.16093693],
## [1.0427565 , 1.31077147]],
##
## [[0.4613834 , 1.41173947],
## [0.45627454, 0.31618678]]])
## array([[[0.45015366, 1.16093693],
## [1.0427565 , 1.31077147]],
##
## [[0.4613834 , 1.41173947],
## [0.45627454, 0.31618678]]])
## array([[[0.129541 , 0.56693259],
## [2.6215325 , 1.62829117]],
##
## [[0.86977631, 1.16619445],
## [0.36396552, 0.49650153]]])
## array([[[0.129541 , 0.56693259],
## [2.6215325 , 1.62829117]],
##
## [[0.86977631, 1.16619445],
## [0.36396552, 0.49650153]]])
## array([[[0.02057429, 0.31120606],
## [0.21733831, 0.40498513]],
##
## [[0.05296051, 0.49531925],
## [0.0407292 , 0.02216428]]])
## array([[[0.02057429, 0.31120606],
## [0.21733831, 0.40498513]],
##
## [[0.05296051, 0.49531925],
## [0.0407292 , 0.02216428]]])
## array([[[1.05298155, 1.52202109],
## [2.12723734, 2.25253273]],
##
## [[1.23939678, 2.13833047],
## [1.12947617, 1.11060267]]])
## array([[[0.22721292, 0.64810425],
## [0.86880614, 0.90114108]],
##
## [[0.46327615, 0.87179434],
## [0.3489326 , 0.32388704]]])
## array([[[0.05160278, 0.40779617],
## [0.68516056, 0.72570273]],
##
## [[0.21298084, 0.68893983],
## [0.12145337, 0.10471052]]])
## array([[[-1.28713397, -0.37671026],
## [-0.12215423, -0.09041443]],
##
## [[-0.66832012, -0.11917191],
## [-0.91451691, -0.97921287]]])
3.7.2 比较数组
## array([[[False, False],
## [False, False]],
##
## [[False, False],
## [False, False]]])
## array([[[ True, True],
## [False, False]],
##
## [[ True, False],
## [ True, True]]])
## False
3.7.3 聚合函数
## 3.239851111719709
## 0.05162570936912836
## array([[0.75482411, 0.81205524],
## [0.21462479, 0.76002537]])
## array([[[0.05162571, 0.42003912],
## [0.75482411, 0.81205524]],
##
## [[0.2662505 , 1.18006449],
## [0.87657807, 0.91695805]]])
## 0.4049813889649636
## 0.31733195338493403
## 0.3053159872880776
3.9 操纵数组
3.9.4 合并数组
concatenate arrays 连接数组
## array([1, 2, 3, 1, 2, 3])
## array([[1, 2, 3],
## [4, 5, 6],
## [1, 2, 3],
## [4, 5, 6]])
stack arrays vertically (row wise 按行排列)
## array([[1, 4],
## [2, 5],
## [3, 6],
## [1, 4],
## [2, 5],
## [3, 6]])
## array([[1, 4],
## [2, 5],
## [3, 6],
## [1, 4],
## [2, 5],
## [3, 6]])
stack arrays horizontally (colnum wise)
## array([[1, 2, 3, 1, 2, 3],
## [4, 5, 6, 4, 5, 6]])
## array([[1, 2, 3, 1, 2, 3],
## [4, 5, 6, 4, 5, 6]])