本篇文章给大家分享的是有关meshgrid函数怎么在numpy中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
成都创新互联公司成立十多年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都做网站、网站设计、网站策划、网页设计、域名注册、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,成都创新互联公司通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。meshgrid(*xi, **kwargs)
功能:从一个坐标向量中返回一个坐标矩阵
参数:
x1,x2...,xn:数组,一维的数组代表网格的坐标。
indexing:{'xy','ij'},笛卡尔坐标'xy'或矩阵'ij'下标作为输出,默认的是笛卡尔坐标。
sparse:bool类型,如果为True,返回一个稀疏矩阵保存在内存中,默认是False。
copy:bool类型,如果是False,返回一个原始数组的视图保存在内存中,默认是True。如果,sparse和copy都为False,将有可能返回一个不连续的数组。而且,如果广播数组的元素超过一个,可以使用一个独立的内存。如果想要对这个数组进行写操作,请先拷贝这个数组。
返回值:x1,x2,....,xn:ndarray(numpy数组)
可能看完官方的文档之后还是一脸懵逼,下面通过几个例子来解释说明一下。
nx,ny = (3,2) #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数 x = np.linspace(0,1,nx) #[ 0. 0.5 1. ] y = np.linspace(0,1,ny) # [0. 1.] xv,yv = np.meshgrid(x,y) ''' xv [[ 0. 0.5 1. ] [ 0. 0.5 1. ]] yv [[ 0. 0. 0.] [ 1. 1. 1.]] '''
通过上面的例子,其实可以发现meshgrid函数将两个输入的数组x和y进行扩展,前一个的扩展与后一个有关,后一个的扩展与前一个有关,前一个是竖向扩展,后一个是横向扩展。因为,y的大小为2,所以x竖向扩展为原来的两倍,而x的大小为3,所以y横向扩展为原来的3倍。通过meshgrid函数之后,输入由原来的数组变成了一个矩阵。通过使用meshgrid函数,可以产生一个表格矩阵,下面用一个例子来展示产生一个2*2网格的坐标,每个网格的大小为1。
nx,ny = (3,3) #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数 x = np.linspace(0,2,nx) # [0. 1. 2.] y = np.linspace(0,2,ny) # [0. 1. 2.] xv,yv = np.meshgrid(x,y) print(xv.ravel()) #[ 0. 1. 2. 0. 1. 2. 0. 1. 2.] print(yv.ravel()) #[ 0. 0. 0. 1. 1. 1. 2. 2. 2.]
ravel函数是将矩阵变为一个一维的数组,其中xv.ravel()就表示x轴的坐标,yv.ravel()就表示了y轴的坐标,我们将x轴的坐标和y轴的坐标进行一一对应,就产生了一个2*2大小为1的网格中的9个点的坐标。
如果,将sparse参数设置为True,就不会向上面一样进行扩展了,也就是说它产生的网格坐标不是所有的网格坐标,而是网格对角线上的坐标点。
nx,ny = (3,3) #从0开始到1结束,返回一个numpy数组,nx代表数组中元素的个数 x = np.linspace(0,2,nx) # [0. 1. 2.] y = np.linspace(0,2,ny) # [0. 1. 2.] xv,yv = np.meshgrid(x,y,sparse=True) print(xv) #[[ 0. 1. 2.]] print(yv) ''' [[ 0.] [ 1.] [ 2.]] '''
以上就是meshgrid函数怎么在numpy中使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联成都网站设计公司行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。