numpy的生成网格矩阵 meshgrid()

numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵

meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵。

1 基本语法

meshgrid(*xi, **kwargs)

参数:

xi - x1, x2,..., xn : array_like

返回值:

X1, X2,..., XN : ndarray

2 示例

2.1 一个参数时

import numpy as np
a = [1,2,3]
b = np.meshgrid(a)
print(b) # [array([1, 2, 3])]

当只有一个参数时,返回值也只有一个 b ,若写两个返回值  b, c = np.meshgrid(a) 则会报错。

2.2 两个参数时

2.2.1 两个参数长度一致时

示例1 

import numpy as np

a = [1,2,3]
b = [9,8,7]

c, d = np.meshgrid(a,b)

print(c)
print(‘-‘*10)
print(d)

运行

[[1 2 3]
[1 2 3]
[1 2 3]]
----------
[[9 9 9]
[8 8 8]
[7 7 7]]

当两个参数长度一致时(如长度为 N ),则生成 N * N 维矩阵

示例2 

交换两参数的顺序

import numpy as np

a = [1,2,3]
b = [9,8,7]

c, d = np.meshgrid(b,a)

print(c)
# [[9 8 7]
#  [9 8 7]
#  [9 8 7]]
print(d)
# [[1 1 1]
#  [2 2 2]
#  [3 3 3]]

交换两个参数顺序后,输出结果发生了变化。

示例3

当返回值值是两个或两个以上参数时,也可用一个参数来接受。

import numpy as np
a = [1,2,3]
b = [9,8,7]
c = np.meshgrid(a,b)
print(c)
# 下面是打印出的结果+
# [array([[1, 2, 3],
#        [1, 2, 3],
#        [1, 2, 3]]), array([[9, 9, 9],
#        [8, 8, 8],
#        [7, 7, 7]])]

2.2.2 两个参数长度不一致时

原文地址:https://www.cnblogs.com/gengyi/p/9420559.html

时间: 2024-10-17 13:51:22

numpy的生成网格矩阵 meshgrid()的相关文章

[matlab] 17.网格矩阵

生成网格矩阵,并且根据条件筛选,重新赋值为0,1二值图像 clear all;close all; %生成二值图 index= randperm(2500,1000); %生成10个不重复随机指标 Z= ones(50,50); %默认白底 Z(index) = 0; %随机指标处黑底 imagesc(Z); cmap = [0 0 0;1 1 1]; %自定义一个colormap colormap(cmap); axis square; 方法1 n=5;%方阵行列数 c=10;%填充c个方格

numpy中的matrix矩阵处理

numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matrix(data,dtype,copy):返回一个矩阵,其中data为ndarray对象或者字符形式:dtype:为data的type:copy:为bool类型. >>> a = np.matrix('1 2 7; 3 4 8; 5 6 9') >>> a          

C++生成zigzag矩阵

// test_max.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> using namespace std; #define N 8 int main() { int** A=(int **)malloc(N*sizeof(int*)); for(int i=0;i<N;i++) { A[i]=(int*)malloc(N*sizeof(int)); } int s=0; int temp=

NAV导航网格寻路(5) -- 生成网格的一些补充

这篇是转的文章,原文http://blianchen.blog.163.com/blog/static/13105629920103811451196/ 如果你也实现了上一章提到的代码,不难发现对下图的两种情况会出现问题 左面的是两个区域有相交的情况,右面的是多边形本身有自交,在这两种情况下,前面给出的代码均会产生错误的结果. 对于两个多边形相交,可以在生成网格之前先合并多边形,合并后如图 合并算法在前面多边形剪裁处已给出一个,这里只贴上代码: /** * 合并两个多边形(Weiler-Athe

Numpy学习--多维矩阵“理解 : 的用法”

:(冒号)在多维数组选快儿时经常会用到,今天特此做下笔记. #############创建numpy数组 #1111111定义普通数组 #先直接定义是一个list list1 = [[2,3,1,1],[3,4,5,7],[3,1,6,1]] #然后np.array() 把list 变成数组 array = np.array(list1) #2222222 定义空数组 #全1 数组用ones zero =np.zeros((3,2)) print zero ################ #数

转:numpy.linalg.eig() 计算矩阵特征向量

https://blog.csdn.net/chixujohnny/article/details/51063617 在PCA中有遇到,在这里记录一下 计算矩阵的特征值个特征向量,下面给出几个示例代码: 在使用前需要单独import一下 >>> from numpy import linalg as LA >>> w, v = LA.eig(np.diag((1, 2, 3)))>>> w; varray([ 1., 2., 3.])array([[

python 生成螺旋矩阵

对于任意 m*n 矩阵,将 1~m*n 的数字按照螺旋规则在矩阵中排列. 如 m=3,n=3,期望结果为: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 以下代码支持方阵以及非方阵. code: # coding=utf-8 import numpy flag=1 pos_x=0 pos_y=0 def inc(pos_x,pos_y,row,col): if(-1<pos_x<row and -1<pos_y<col): return Tru

numpy自动生成数组

1 np.arange(),类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组,注意该函数和range一样结果不包含终值. >>> np.arange(10) array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.arange(0,1,0.1) array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) >>> 2 np.linspace

使用numpy求解Zoepritz 方程矩阵伪逆时报错: SVD did not converge

笔者在使用numpy中的pinv函数求解伪逆时系统报错: SVD did not converge. 奇异值分解不收敛 具体原因不太清楚, 应该是因为函数在求解伪逆的算法在迭代过程中难以收敛导致的. 解决方法: 引入scipy中的求解伪逆的函数 scipy.linalg.pinv Zoepritz equations的python程序在: https://github.com/cui-xiaoang96/Zoepritz-equations 原文地址:https://www.cnblogs.co