Numpy特点
——如果有想关注Java开发相关的内容,可以转Java修炼之道
详细观看——
Numpy作为使用Python进行科学计算的常用库,有着如下特点:
- 提供了N维数组(矩阵),快速高效,矢量数学运算;
- 高效的Index,不需要循环,因为底层实现采用了C语言开发。
常见的数组和矩阵的方法
数组和矩阵的创建与维度信息
-
numpy.array()
## 数组的创建 vector = numpy.array([1,2,3,4]) ## 矩阵的创建 matrix = numpy.array([ [1,2,3], [4,5,6], [7,8,9] ])
-
shape
## 打印数组的维度信息 vector.shape() ——》(4,) # 数组中存在4个元素 ## 打印矩阵的维度信息 matrix.shape()——》(3,3) #三行三列
-
reshape
eg: a = np.arange(15).reshape(3, 5) #随机创建3行5列的矩阵 Out: [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] a.ndim # 返回其维数 即 2
注意:
-
reshape可以创建一个改变了尺寸的新数组,但是原始数组的shape是不会发生变化的。
-
reshape(-1):数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
eg: z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]) z.shape Out:(4, 4) z.reshape(-1) Out:array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
-
reshape(-1,1):在不知道有多少行的情况下,转变成一列数据
eg: z.reshape(-1,1) Out:array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10], [11], [12], [13], [14], [15], [16]])
-
reshape(-1,2):在不知道有多少行的情况下,转变成2列数据
eg: z.reshape(-1, 2) Out:array([[ 1, 2], [ 3, 4], [ 5, 6], [ 7, 8], [ 9, 10], [11, 12], [13, 14], [15, 16]])
-
-
linspace
-
一般情况下,先创建python序列,通过array函数转换城数组,这样的效率不高,但是可以直接通过arange函数,指定开始值、终值和步长来创建一维数组(数组不包括终止值)。
-
linspace函数通过指定开始值、终值和元素的个数来创建一维数组。但是可以通过endpoint关键字来指定是否包括终值,缺省值默认为包括终止值。
eg: np.linspace(0, 1, 10) # 步长为1/9 Out:——》array([ 0. , 0.11111111, 0.22222222, 0.33333333, 0.44444444,0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])
-
-
logspace
logspace函数和linspace类似,不过它创建等比数列
eg: np.logspace(0, 2, 20) # 产生1(10^0)到100(10^2)、有20个元素的等比数列 array([ 1. , 1.27427499, 1.62377674, 2.06913808, 2.6366509 , 3.35981829, 4.2813324 , 5.45559478, 6.95192796, 8.8586679 , 11.28837892, 14.38449888, 18.32980711, 23.35721469, 29.76351442, 37.92690191, 48.32930239, 61.58482111, 78.47599704, 100. ])
-
**zeros()、ones()、empty()**可以创建指定形状和类型的数组
zeros_like()、ones_like()、empty_l