numpy的生成網格矩陣 meshgrid

2021-09-07 19:27:36 字數 2681 閱讀 4011

numpy模組中的meshgrid函式用來生成網格矩陣,最簡單的網格矩陣為二維矩陣

meshgrid函式可以接受 x1, x2,..., xn 等 n 個一維向量,生成 n-d 矩陣。

meshgrid(*xi, **kwargs)

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

返回值:

x1, x2,..., xn : ndarray

import

numpy as np

a = [1,2,3]

b =np.meshgrid(a)

print(b) #

[array([1, 2, 3])]

當只有乙個引數時,返回值也只有乙個 b ,若寫兩個返回值  b, c = np.meshgrid(a) 則會報錯。

示例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]])]

import

numpy as np

a = [1,2,3]

b = [9,8]

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

print

(c)#

[[1 2 3]

#[1 2 3]]

print

(d)#

[[9 9 9]

#[8 8 8]]

這是乙個 2 * 3(2 行 3 列)

相當於 b 由行向量變成了列向量

import

numpy as np

a = [1,2,3]

b = [9,8]

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

print

(c)#

[[9 8]

#[9 8]

#[9 8]]

print

(d)#

[[1 1]

#[2 2]

#[3 3]]

import

numpy as np

a = [1,2,3]

b = [4,5,6]

c = [7,8,9]

x, y, z =np.meshgrid(a, b, c)

print

(x)#

[[[1 1 1]

#[2 2 2]

#[3 3 3]]##

[[1 1 1]

#[2 2 2]

#[3 3 3]]##

[[1 1 1]

#[2 2 2]

#[3 3 3]]]

print

(y)#

[[[4 4 4]

#[4 4 4]

#[4 4 4]]##

[[5 5 5]

#[5 5 5]

#[5 5 5]]##

[[6 6 6]

#[6 6 6]

#[6 6 6]]]

print

(z)#

[[[7 8 9]

#[7 8 9]

#[7 8 9]]##

[[7 8 9]

#[7 8 9]

#[7 8 9]]##

[[7 8 9]

#[7 8 9]

#[7 8 9]]]

Numpy生成特殊矩陣

import numpy as np data np.loadtxt data delimiter dtype float 特殊矩陣 解釋np.asarray data 拷貝data矩陣 np.ones n np.ones m,n np.ones like data 生成乙個長度為n的一維陣列,元素...

numpy的矩陣計算

給乙個向量a 0,1,2 每個元素乘以2 a for e in a 或者a 2 e for e in a 或者a np.array 2 e for e in a 這個比較快 如果是numpy的array 直接2 a就可以了這個最快 universal functions 1,1都可以 np.abs ...

numpy的矩陣計算

arr1 np.arange 1,6 arr2 np.array 10 20,30 40,50 print arr1 print arr2 print arr1 arr2 展示 12 345 102030 4050 1122 334455 注意點 1 一維陣列的元素個數是相同的,不然無法完成廣播 2...