• numpy 使用总结


    1. # 掩码数据 -- 表示掩码 ,作用:为了存储时所占用内存更小
      A = np.array(range(20, 30))
      a_mask = A < 25
      print(a_mask)   # [ True  True  True  True False False False False False False]
      ym = np.ma.array(A, mask=a_mask, fill_value=-999999)  # 默认填充值
      print(ym)
    2. # 打印掩码类型
      print(ym.mask)
    3. # 判断元素是否是掩码 --
      print(ym[0] is np.ma.masked)
    4. # 确定输入是否具有掩码值
      print(np.ma.is_masked(ym))
    5. # 此函数不检查输入内容,仅检查类型为MaskType    如 ym.mask
      print(np.ma.is_mask(ym.mask))
    6. # 合并数组   
      #TODO 注意这里的合并数组必须放到一个集合中 也可以说是按行或列拼接为新数组
      AA = np.concatenate([A, np.array([np.nan, np.nan])])
      print(AA)
    7. # 获取值为 nan 的
      print(AA[np.isnan(AA)])
    8. # 获取值不为 nan 的
      print(AA[~np.isnan(AA)])
    9. # 判断 24 < AA < 28 的值
      # TODO 记得加括号哦
      print(AA[(AA > 24) & (AA < 28)])
    10. # 获取判断是掩码数据的bool值列表
      
      
      isym = np.array(list(map(lambda v: v is np.ma.masked, ym)))
      print(isym)
      # 获取掩码值的下标
      isymind = np.where(isym == True)
      # 这种方法就不用上面的两步才能完成了 isymind = np.where(ym == np.ma.masked) print(isymind)
      # 修改掩码值为 0 ym[isymind[0]] = 0 print(ym)
      
      
       
    11. 二维数据判断大于小于,并取值
      # lats, lons, data 都是二维数据
      t_index = np.logical_and(lats >= lat[0], lats <= lat[1])
      n_index = np.logical_and(lons >= lon[0], lons <= lon[1])
      index = np.logical_and(t_index == True, n_index == True)
      tidx = np.where(index == True)
      print(tidx)
      la = lats[tidx]
      lo = lons[tidx]
      dd = data[tidx]
      print(la)
      print(lo)
      print(dd)
    12. 行列互换 

      # 生成倒序数组
      print(np.linspace(10,1,10))
      # 行列互换
      s = np.arange(20).reshape(4,5)
      print(s)
      print(s.T)
    13. dtype函数创建"新"类型

      from numpy import *
      #创建一个数据类型 t
      t = dtype([("name", str_, 40), ("age", uint8), ("math", uint8)])
      # 创建数组x,数组元素类型为 t
      x = array([("liming", 35, 78),("yangmi", 31, 58)], dtype = t)
      print (x)
      print (x[0]["name"])
      print (x[1]["math"])
      
      
      t = dtype([("name", "S40"), ("age", "u8"), ("math", "f")])
      y = array([("liming", 44, 98),("yangmi", 32, 58)], dtype = t)
      print(t)
      print (y[1]["age"])
      print (y["age"])
      print (y[0])
      
      # [('liming', 35, 78) ('yangmi', 31, 58)]
      # liming
      # 58

      # [('name', 'S40'), ('age', '<u8'), ('math', '<f4')] # 32 # [44 32] # (b'liming', 44, 98.) # 从结果可以看出,对于这种复合的类型可以按行(记录)访问print y[0],也可以按列(字段)访问print y["age"]

       

    14. extract 根据某个条件从数组中抽取元素,返回满条件的元素。
      import numpy as np 
       
      x = np.arange(9.).reshape(3,  3)  
      print ('我们的数组是:')
      print (x)
      # 定义条件, 选择偶数元素
      condition = np.mod(x,2)  ==  0  
      print ('按元素的条件值:')
      print (condition)
      print ('使用条件提取元素:')
      print (np.extract(condition, x))
    15. argwhere  where  查找等于指定元素的下标
      lat = np.array([1,2,3,60,70,80])
      print(np.argwhere(lat == 60))
      print(np.where(lat == 60))
    16. flip 数组上下左右反转
      np.flip()
    17. maxinum    X 与 Y 逐位比较取其大者
      # 数据每个值和 0 比较,取大值(data中值大于 0,返回大值 data中值,data中值小于0,返回大值 0)
      data = np.maximum(data, 0)
              
     
             仅供参考,欢迎评论交流
  • 相关阅读:
    Python len() 方法
    Python join() 方法
    Python isupper() 方法
    使用quartz进行容器启动时登陆接口服务器和接口服务器进行心跳连接
    实现锁死的有滚动条的div的表格(datagird)
    使用spring的事务的三种方法
    webservice系统学习笔记7-使用handler实现过滤器/拦截器效果
    webservice系统学习笔记7-异常处理
    webservice系统学习笔记6-使用soap的header传递消息
    JSTL fmt:formatNumber 数字、货币格式化
  • 原文地址:https://www.cnblogs.com/luochunxi/p/14132212.html
Copyright © 2020-2023  润新知