第二章 Python Numpy运用

Python Numpy运用

  • 二、Python Numpy运用
      • 1. 数组创建
      • 2. 数组属性
      • 3. 索引和切片
      • 4. 数组形状改变
        • (1)数组形状改变
        • (2)axin=0 和 axis=1的区别
      • 5. 数组的ufunc广播机制
        • (1)数组的ufunc广播机制
        • (2)Python广播运算机制
        • (3)通用函数运算
        • (4)算术运算
        • (5)比较运算
      • 6. 排序和排序
        • (1)搜索与排序
      • 7. 数据读取和存储
        • (1)文件读取
        • (2)文件存储
        • (3)Numpy字符串处理
        • (4)char模块常用函数
      • 8. Numpy随机数生成
        • (1)Numpy随机数生成
        • (2)random模块中相关函数
      • 9. Numpy统计相关函数
        • (1)Numpy统计相关函数
        • (2)axis=0 和 axis=1的区别
      • 10. Numpy线性代数
        • (1)了解矩阵乘法
        • (2)了解矩阵的转置和求逆
        • (3)多元一次方程组求解

二、Python Numpy运用

1. 数组创建

  • arr1 = np.array([-9,7,4,3]) #数组

  • np.arange(0,10,1)

  • array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  • np.linspace(1,10,11) #创建等差数列

  • np.linspace(1,10,10,endpoint=False) #endpoint:去掉最后一个

  • np.logspace(1,5,base=2,num=10) #logspace:创建等比数列

  • np.zeros([4,5]) #0数组

  • np.ones([4,5]) #1数组

  • np.eye(6) #对角线矩阵

  • np.diag([4,5,8]) #对角线矩阵
    第二章 Python Numpy运用_第1张图片

2. 数组属性

  • arr3.shape #几行几列
  • arr3.ndim #数组-纬度
  • arr3.size #数组-总元素数
  • arr3.dtype #数组-数据类型
    第二章 Python Numpy运用_第2张图片

3. 索引和切片

  • arr_change = arr.copy() #赋值,原数据不会发生改变

  • arr2[~(arr2 > 3.5)] #“~”取相反

  • arr2[[2,1]] #索引第三行和第二行

  • arr2[np.ix_([0,-1],[0,1,3])] #第一行和最后一行,第一、二、四列
    第二章 Python Numpy运用_第3张图片

第二章 Python Numpy运用_第4张图片

4. 数组形状改变

  • arr.reshape(10,2) #返回视图,不会改变原数组的形状
  • arr.resize(10,2) #改变原数组的形状
  • arr.ravel() #数组按照横向降到一维
  • arr.ravel(order = ‘F’) #数组按照纵向降到一维
  • arr.flatten() #数组按照横向降到一维
  • arr.flatten(order = ‘F’) #数组按照纵向降到一维
  • arr_t[np.newaxis,:]
  • np.hstack([arr1,arr2]) #横向合并数组
  • np.vstack((arr1,arr3)) #纵向合并数组
  • np.concatenate((arr1,arr2),axis=1) #横向合并数组
  • np.concatenate((arr1,arr3),axis=0) #纵向合并数组
  • np.tile(arr4,(4,4)) #复制行列
  • arr5 = np.arange(8).reshape(2,2,2) #三维数组

(1)数组形状改变

第二章 Python Numpy运用_第5张图片

(2)axin=0 和 axis=1的区别

第二章 Python Numpy运用_第6张图片

5. 数组的ufunc广播机制

  • np.add(english,np.add(math,chinese)) #add只能做两个数组相加
  • np.subtract(math,english) #subtract两个数组相减
  • np.divide(weight,np.divide(height,100)**2) #divide两个数组相乘
  • np.power(arr2,3) #power幂
  • np.unique(s) #unique去重
  • np.in1d(s,test) #in1d判断是否有元素
  • np.intersect1d(test,s) #intersect1d两个数组的交集
  • np.equal(arr1,arr2) #数组是否相同
  • np.greater(arr1,arr2) #数组比大小
  • np.greater(arr1,arr2).any() #有一个元素相同,True
  • np.greater(arr1,arr2).all() #所有元素相同,True
  • np.isnan(s1) #判断空

(1)数组的ufunc广播机制

第二章 Python Numpy运用_第7张图片

(2)Python广播运算机制

第二章 Python Numpy运用_第8张图片

第二章 Python Numpy运用_第9张图片

(3)通用函数运算

第二章 Python Numpy运用_第10张图片

(4)算术运算

第二章 Python Numpy运用_第11张图片

(5)比较运算

第二章 Python Numpy运用_第12张图片

6. 排序和排序

  • np.sort(s) #排序
  • np.array(sorted(s,reverse = True)) #反向
  • np.argsort(s) #排完序后,元素在原组中的位置
  • s.argmax() #第几位元素是最大的
  • s.argmin() #第几位元素是最小的
  • arr1.argmax(axis = 1) #横向最大值
  • arr1.argmax(axis = 0) #纵向最大值
  • np.where(arr2 >3,‘1’,‘0’) #where元素比较,类似if
  • np.extract(arr1 > arr2,arr1) #extract输出对的元素

(1)搜索与排序

第二章 Python Numpy运用_第13张图片

7. 数据读取和存储

  • data = np.genfromtxt(r’E:\Python learn\10 Python数据分析\第二章 Numpy运用\case1.txt’, delimiter=’,’) #文件读取
  • np.savetxt(r’E:\Python learn\10 Python数据分析\第二章 Numpy运用\case2.txt’,data,delimiter = ‘,’, fmt=’%.3f’) #文件存储

(1)文件读取

第二章 Python Numpy运用_第14张图片

(2)文件存储

第二章 Python Numpy运用_第15张图片

(3)Numpy字符串处理

第二章 Python Numpy运用_第16张图片

(4)char模块常用函数

第二章 Python Numpy运用_第17张图片

8. Numpy随机数生成

  • np.random.random(100) #产生0到1之间的浮点数
  • np.random.seed(1000) #seed固定随机数
    np.random.random((3,4))
  • np.random.rand(2,10) #rand均匀分布,产生的每个数是一样的
  • np.random.randint(0,100,size=100) #randint均匀分布,sizeq区间
  • np.random.randint(0,100,size=[10,10]) #产生给定范围的随机整数
  • np.random.uniform(low=0,high=10,size=100) #产生给定范围的随机数
  • np.set_printoptions(precision=3) #控制小数位数
  • np.random.normal(1,3,size=100) #正太分布,均值:1,标准差:3
  • np.mean(np.random.normal(1,3,size=100000)) #mean均值结果
  • np.std(np.random.normal(1,3,size=100000)) #std标准差结果
  • np.random.randn(100) #正太分布,均值:0,标准差:1
  • np.random.shuffle(s) #shuffle:对数进行随机排序
  • np.random.permutation(s) #permutation:对数进行随机排序,直接作用在数组上

(1)Numpy随机数生成

第二章 Python Numpy运用_第18张图片

(2)random模块中相关函数

第二章 Python Numpy运用_第19张图片

9. Numpy统计相关函数

  • data = np.genfromtxt(r’E:\Python learn\10 Python数据分析\第二章 Numpy运用\case4.txt’, delimiter = ‘,’, skip_header=1)
  • data.sum() #sum:求和
  • data.sum(axis=0) #axis=0,沿着列求和
  • data.sum(axis=1) #axis=1,沿着行求和
  • data.mean() #求均值
  • data.cumsum() #累计求和
  • np.percentile(data,10) #计算分位数的方法
  • np.median(data) #计算中分位数的方法
  • np.ptp(data) #ptp:极差(最大值-最小值)

(1)Numpy统计相关函数

第二章 Python Numpy运用_第20张图片

(2)axis=0 和 axis=1的区别

第二章 Python Numpy运用_第21张图片

10. Numpy线性代数

  • vector = np.dot(a,b) #dot:矩阵相乘
  • np.matrix([5,15,25,40]) #矩阵
  • np.dot(arr9,arr10) # 矩阵相乘
  • np.transpose(arr2) #transpose:数组转置
  • arr2_inv = np.linalg.inv(arr2) #linalg:逆矩阵,对矩阵进行求逆
  • np.dot(arr2_inv,arr2) #逆矩阵乘以矩阵本身,等于单位矩
  • np.set_printoptions(precision=2) #precision:控制小数点位置,科学计数法
  • np.set_printoptions(suppress=True)
    #suppress:相当于with,with语句允许开发者创建上下文管理器;
    #上下文管理器就是允许自动地开始和结束一些事情
  • np.diag(arr2) #diag:取出对角线上的元素
  • X = np.linalg.solve(A,B) #???

(1)了解矩阵乘法

(2)了解矩阵的转置和求逆

(3)多元一次方程组求解

第二章 Python Numpy运用_第22张图片

你可能感兴趣的:(python数据分析)