numpy入门实战教程(进阶篇)

Abstract:numpy入门实战教程进阶篇,附代码。


1.广播法则(BROADCAST RULE)

广播法则能使通用函数有意义地处理不具有相同形状的输入

  • 第一法则:若所有的输入数组维度不都相同,一个“1”将被重复地添加在维度较小的数组上直至所有数据都拥有相同的维度

  • 第二法则:确定长度为1的数组沿着特殊方向表现地好像它有沿着那个方向最大形状的大小。对数组来说,沿着那个维度的数组元素的值理应相同

应用广播法则后,所有数组的大小必须匹配

2.花哨的索引和索引技巧

numpy比普通的python序列提供更多的索引功能。数组的索引功能:索引整数、切片、被整数数组和布尔数组索引。

2.1 通过数组索引(INDEXED BY ARRAY)

  # indexed via array
  a = arange(12)**2
  print a
  i = array([1,1,3,8,5]) 
  print i
  print a[i] #  # the elements of a at the positions i
  
  j = array([[3,4],[9,7]])
  print a[j]
  
  # 当被索引数组a是多维的时,每一个唯一的索引数列指向a的第一维5。
  # 以下示例通过将图片标签用调色版转换成色彩图像展示了这种行为
  palette = array([
      [0,0,0],
      [255,0,0],
      [0,255,0],
      [0,0,255],
      [255,0,255],
      [255,255,255]])
  image = array([[0,1,2,0],
      [0,3,4,0]])
  print palette[image]
  
  # 我们也可以给出不不止一维的索引,每一维的索引数组必须有相同的形状
  a = arange(12).reshape(3,4)
  print a 
  i = array([
      [0,1],
      [1,2]])
  j = array([[2,1],[3,3]])
  print a[i,j]
  print a[i,2]
  print a[:,j]
  print a[i,:]
  l = [i,j]
  print a[l]  # 与 a[i,j] 相等
  
  # 搜索时间序列最大值6
  time = linspace(20, 145, 5)                 # time scale
  data = sin(arange(20)).reshape(5,4)         # 4 time-dependent series
  print time
  print data
  
  ind = data.argmax(axis=0)   # index of the maxima for each series
  print ind 
  
  time_max = time[ind]
  data_max = data[ind, range(data.shape[1])]
  print time_max
  print data_max
  print all(data_max == data.max(axis=0)) # True
  a = arange(5)
  print a 
  # 当一个索引列表包含重复时,赋值被多次完成,保留最后的值
  a = arange(5)
  a[[0,0,2]] = [1,2,3]
  print a 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【为什么要学习NumpyNumPyPython语言的一个扩展程序库。支持多维数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy是人工智能、数据分析从业者必备的知识和技能,也是学习后续Python扩展库(Matplotlib, SciPy, Pandas, Seaborn, Scikit-image等)的基础。【推荐你学习这门课的理由】(1)图文并茂:课程采用Jupyter Notebook讲解,图文并茂,讲述与Numpy代码对应。其文件将分享给学员,可作为交互式电子书使用。(2)案例丰富: 每个知识点均有Numpy代码示例说明;难点使用图解说明和讲述。另提供Numpy项目实战案例-鸢尾花数据集上的数据分析与计算。(3)内容全面系统:涵盖了Numpy的基础用法和高级用法,包括:ndarray、创建数组、复制数组、数组访问、数组运算、数组操作、迭代数组、maskedarray、结构化数组、通用函数、数学函数、统计函数、排序函数、条件查找、随机数、字节交换、线性代数、数据文件读写等。   玩转是一种境界,显示了对该领域有很大的兴趣,并非常了解和能娴熟使用。希望本课程能帮助大家玩转Numpy!【优惠说明】 课程正在优惠中! 备注:购课后可加入白勇老师课程学习交流QQ群:957519975【相关课程】《玩转Matplotlib数据绘图库》课程链接:https://edu.csdn.net/course/detail/28720 《Python编程的术与道:Python语言入门》课程链接: https://edu.csdn.net/course/detail/27845  《Python编程的术与道:Python语言进阶》课程链接: https://edu.csdn.net/course/detail/28618 【课程体系结构图】  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值