python扩展库numpy中函数meshgrid()的使用[当你想要两个for循环嵌套处理时,就该想到它]
看一个简单的例子:
设有一个3阶方阵Z,
其值由式子x^2 + y^2生成。
x的取值为4,5,6;
y的取值为7,8,9。
按常规的思路应该是由两个循环生成方阵Z,即如下的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#作者微信/QQ 2487872782
#有问题可以联系作者交流import numpy as npZ = np.zeros((3, 3), np.int)x = np.array([4, 5, 6])
y = np.array([7, 8, 9])for i in range(0, 3):for j in range(0, 3):Z[i, j] = x[i]**2 + y[j]**2
生成的Z矩阵如下:
这种情况下,我们就可以用函数meshgrid()的来简化代码并加速程序运行速度了。
当我们用函数meshgrid()后,代码就清爽了,如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 对这篇博文或该程序有不明白的可以加微信/QQ 2487872782交流import numpy as npx = np.array([4, 5, 6])
y = np.array([7, 8, 9])
X, Y = np.meshgrid(x, y)Z_2 = X**2 + Y**2
生成的Z_2矩阵如下:
可见结果是一样的。
在使用了函数meshgrid()后,
①去掉了嵌套的两个for循环,我们知道,for循环的嵌套是很消耗运算资源的,在DSP(数字信号处理)中,为了提高运行速度,我们往往要对for循环进行精简。
②简化了代码,避免代码出错,也减少了我们程序员的工作量。
接下来说meshgrid()对向量进行了怎样的操作?
下面这张图说得很明白:
大家重点看我画红框中的两个矩阵,即图中的矩阵xv和矩阵yv,这是它们的生成的示意图。
一个简单的实例更有利于大家理解:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 对这篇博文或该程序有不明白的可以加微信/QQ 2487872782交流import numpy as npx = np.array([4, 5, 6])
y = np.array([7, 8])
X, Y = np.meshgrid(x, y)
运行结果如下:
可见,矩阵X和矩阵Y的确是按照示意图中生成的。
具体的细节这篇博文就不多说了,多说反而不利于大家理解。
总结一下:
当两个向量中的元素分别遍历作运算然后生成一个新的矩阵时,一定不要忘了用函数meshgrid()简化代码。当你要用两个for循环的嵌套时,你先要想想能不能用函数meshgrid()进行操作。
python扩展库numpy中函数meshgrid()的使用[当你想要两个for循环嵌套处理时,就该想到它]相关推荐
- Python扩展库numpy中where()函数的三种用法
第一种用法:只给where()函数传递一个数组作为参数,返回其中非0元素的下标. 第二种用法:给where()函数传递一个包含True/False值的数组,返回该数组中True值的下标,结合numpy ...
- 爱因斯坦求和约定在Python扩展库Numpy中的实现
推荐教材: <Python数据分析.挖掘与可视化>(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年12月第 ...
- Python扩展库numpy中的布尔运算
首先解答上一篇文章Win10系统配置Python3.6+OpenGL环境详细步骤中的问题.该问题的答案为[2, 2],要点在于列表对象的方法index()默认是返回指定元素在列表中首次出现的下标,元组 ...
- 使用Python扩展库numpy中的piecewise()函数实现分段函数模拟兔子的行走轨迹,然后使用matplotlib.pyplot中的plot函数绘制折线图表示兔子和乌龟的时间位移图,并添加坐标
import matplotlib.pyplot as plt import numpy as np #使用参数字典 rcParams 访问并修改已经加载的配置项 plt.rcParams['font ...
- Python科学计算扩展库numpy中的广播运算
首先解答上一个文章Python扩展库numpy中的布尔运算中的问题,该题答案为[111, 33, 2],题中表达式的作用是按列表中元素转换为字符串后的长度降序排序. ----------------- ...
- 详解Python科学计算扩展库numpy中的矩阵运算(1)
首先解答上一篇文章中使用with关键字让你的Python代码更加Pythonic最后的习题,该题答案是False,原因在于内置函数sorted()的参数reverse=True时表示降序排序,而内置函 ...
- python中的numpy函数算相关系数_扩展库numpy的函数corrcoef()用来计算相关系数矩阵。...
[判断题]不同的考试对于词汇能力提出不同的要求.考试水平越高,对学生词汇能力的要求越高. [单选题]利率互换交易的现金流错配风险是指( ) [多选题]石墨可以用来制作铅笔芯,是利用了其 ( )性质. ...
- python标准库random中函数的作用_Python随机函数库random的使用方法详解
Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...
- Python扩展库scipy中值滤波算法的应用
中值滤波是数字信号处理.数字图像处理中常用的预处理技术,特点是将信号中每个值都替换为其邻域内的中值,即邻域内所有值排序后中间位置上的值.下面的代码演示了scipy库中signal模块的中值滤波算法的用 ...
最新文章
- 链接全局变量再说BSS段的清理
- matplotlib生成指定大小的空白的白色图(故意保存)实战:当然也可以保存正常的有内容的图像
- gradle idea java ssm_应用框架:IDEA+Gradle创建MyBatis+SpringMVC项目
- tableau可视化数据分析60讲(四)-tableau数据源操作数据提取
- Nodejs 搭建https服务器(一)
- linux 查看显卡信号_Ubuntu 16.04安装nvidia显卡驱动以及各种坑(包含解决方案)
- i5 9400f和GTX1660能玩战地5吗?
- NLP学习—9.Resent网络详解
- Linux学习笔记(用户管理)
- 操作系统学习笔记 002 安装NASM
- Centos 安装python
- win10关机后cpu风扇还在转_电脑关机后CPU风扇还在转的原因和解决办法
- 用迭代公式求x的立方根C语言详解
- 2022年终总结(学习篇)
- redis 底层数据结构详解
- C语言运算符的优先级大全
- java实现手机扫二维码登陆
- 从ST官网获取最新的标准外设库
- 离散数学 等价类 等价关系 划分
- 三种保存电脑本地图片方法
热门文章
- FUSION CHART自学教程
- GPS定位系统(四)——Vue前端
- Python的pickle模块详解(包括优缺点及和JSON的区别)
- Android自动化测试-Appium篇(二)
- Python Tkinter+py2exe
- 如果要让移动硬盘里面既有系统又想继续当移动硬盘使用可以进行分区(本文章是之前在U盘中安装系统的关联文章)
- Qt MySql 驱动的编译
- 美国俚语:Fool around 什么意思
- 锐捷BGP基础配置(邻居建立、路由重发布、路由聚合、认证)
- Metagenome Assembly - Part1:基于德布莱英图(De Bruijn graph)的宏基因组de novo拼接