Numpy
NumPy系统是Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
Numpy常用操作
创建数组
创建1维数组:
data = np.array([1,3,4,8])
查看数组维度
data.shape
查看数组类型
data.dtype
通过索引获取或修改数组元素
data[1] 获取元素 data[1] = 'a' 修改元素
创建二维数组
1.data = np.array([[1,2,3],[4,5,6]]) 两个元素均为列表
2.data = np.arange(10) 与python的range一样,range返回列表,arange返回array类型的一个数组
3.data2 = data.reshape(2,5) 返回一个2*5的数组,他不是拷贝数组是引用,只是返回数组的不同视图,data改变data2也会改变
创建特殊数组
data = np.zeros((2,2)) 创建2*2全为0的2维数组 data = np.ones((2,3,3,)) 创建全为1的三维数组 data = np.eye(4) 创建4*4的对角数组,对角元素为1,其它都为0
数组转换
data = np.arange(16).reshape(4,4) 将0-16的移位数组转换为4*4的数组
数组索引
data = np.arrange(100,step=10) 先创建一个步长为10的数组
一维数组范围访问
data[2:5] 访问第2-4之间的元素 data[:3] 访问0-2之间的元素 data[5:] = -1 将5-最后一个元素统一赋值为-1
二维或高维数组
data = np.arrary(16).reshape(4,4)
访问元素
data[1] 返回array第一行元素 data[1:3] 返回第一行到第三行元素 data[:,2:4] 返回所有行的第二到第四列元素 data[1:3,2:4] 返回第1到第二行且列数为2-4之间的元素 data[[1,3],[2,3]] 返回第一行第二列元素与第三行第三列元素(=data[1,2],data[3,3])
布尔索引
data>10 数组中每个元素与10比较返回布尔值组成的数组 idx = data>10 获得布尔数组 data[idx] 获取大于10的数组 data[data>10] 获取data数组里面大于10的元素构成的新数组 data[data%2==0] 获取data里面所有偶数元素构成的新数组
数学运算
x = np.arange(1,5).reshape(2,2) y = np.arange(5,9).reshape(2,2) z = x+y 或np.add(x,y) 数组中对应位置元素相加,减法同理 c = x*y 数组中对应位置元素相乘 h = x.dot(y) 矩阵内积 q = x/y 数组对应位置相除 n = np.sqrt(x) 平方根 x.T 转置矩阵 np.linspace(1,10,num=200) 指定在数轴上起始位置与均分,num表示均分份数