zoukankan      html  css  js  c++  java
  • 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)
              
     
             仅供参考,欢迎评论交流
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Qt 自定义model实现文件系统的文件名排序
  • 原文地址:https://www.cnblogs.com/luochunxi/p/14132212.html
Copyright © 2011-2022 走看看