1、NumPy简介
NumPy是高性能科学计算和数据分析的基础包,计算速度要比python自带的函数快很多,非常好用。一般不需要安装,装Python就自动装了,如果需要:
pip3 install numpy
然后导出
import numpy as np
2、常用方法
2.1最常用的
2.2更多
array.shape
& array的规格
array.ndim
数据的维数
array.dtype
&array的数据规格
numpy.zeros(dim1,dim2)
&创建dim1dim2的零矩阵
numpy.arange(start, stop, step, dtype = None)
返回一维的数组
numpy.eye(n) /numpy.identity(n)
&创建nn单位矩阵
numpy.array([…data…], dtype=float64 )
转换数据类型
array.astype(numpy.float64)
&更换矩阵的数据形式
array.astype(float)
&更换矩阵的数据形式
array * array
&矩阵点乘
array[a:b]
&一维数据切片
array.copy()
&得到ndarray的副本,而不是视图
array [a] [b]=array [ a, b ]
&两者等价
name=np.array([‘bob’,‘joe’,‘will’])
res=name==’bob’
res= array([ True, False, False], dtype=bool)
data[True,False,……]
索引,只索取为True的部分,去掉False部分
通过布尔型索引选取数组中的数据,将总是创建数据的副本。
data[ [4,3,0,6] ]
索引,将第4,3,0,6行摘取出来,组成新数组
numpy.reshape(a,b)
将ab的一维数组排列为ab的形式
array([a,b,c,d],[d,e,f,g])
返回一维数组,分别为[a,d],[b,e],[c,f],[d,g]
array.T
&array的转置
numpy.random.randn(a,b)
& 生成a*b的随机数组
numpy.dot(matrix_1,matrix_2)
&矩阵乘法
array.transpose( (1,0,2,etc.) )
& 对于高维数组,转置需要一个由轴编号组成的元组
3、ndarray创建以及数据类型
3.1 ndarray创建
array()
将列表转换为数组,可选择显式指定dtype
arange()
range的numpy版,支持浮点数
linspace()
类似arange(),第三个参数为数组长度
zeros()
根据指定形状和dtype创建全0数组
ones()
根据指定形状和dtype创建全1数组
**empty()**
根据指定形状和dtype创建空数组(随机值)
**eye()**
根据指定边长和dtype创建单位矩阵
3.2 数据类型
ndarray数据类型:dtype:
布尔型:bool_
整型:int_ int8 int16 int32 int64
无符号整型:uint8 uint16 uint32 uint64
浮点型:float_ float16 float32 float64
复数型:complex_ complex64 complex128
4、Numpy索引和切片
4.1普通索引
1 数组和标量之间的运算:
可以直接进行加减乘除的运算(对每一个元素进行) a+1 a*3 1//a a0.5
2 同样大小数组之间的运算:
a+b a/b ab
3 数组的索引:
一维数组:a[5]
多维数组:a[2][3]或a[2,3]
4 数组的切片:
一维数组:a[3:6],a[:5]
多维数组:a[3:6,1:7],a[:,1:7]
注意:与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组。
【解决方法:copy()】
4.2 布尔索引
1 给一个数组,选出数组中所有大于5的数?
a[a>5]
2 给一个数组,选出数组中所有大于5的偶数?
a[(a>5)&(a%2==0)]
3 给一个数组,选出数组中所有大于5的数和偶数
a[(a>5)|(a%2==0)]
4.3 花式索引
1 对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组?
答案:a[[1,3,4,6,7]]
2:对一个二维数组,选出其第一列和第三列,组成新的二维数组?
答案:a[:,[1,3]]
5、NumPy:通用函数以及缺失值表示
5.1一元函数
numpy.sqrt(array)
平方根函数
numpy.exp(array)
e^array[i]的数组
numpy.abs/fabs(array)
计算绝对值
numpy.square(array)
计算各元素的平方 等于array**2</