欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解numpy.meshgrid()方法使用

 更新時間:2019年08月01日 08:59:19   作者:千千Sama  
這篇文章主要介紹了詳解numpy.meshgrid()方法使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一句話解釋numpy.meshgrid()——生成網(wǎng)格點(diǎn)坐標(biāo)矩陣。
關(guān)鍵詞:網(wǎng)格點(diǎn),坐標(biāo)矩陣

網(wǎng)格點(diǎn)是什么?坐標(biāo)矩陣又是什么鬼?

看個圖就明白了:


圖中,每個交叉點(diǎn)都是網(wǎng)格點(diǎn),描述這些網(wǎng)格點(diǎn)的坐標(biāo)的矩陣,就是坐標(biāo)矩陣。

再看個簡單例子


A,B,C,D,E,F是6個網(wǎng)格點(diǎn),坐標(biāo)如圖,如何用矩陣形式(坐標(biāo)矩陣)來批量描述這些點(diǎn)的坐標(biāo)呢?

答案如下:


這就是坐標(biāo)矩陣——橫坐標(biāo)矩陣XXX中的每個元素,與縱坐標(biāo)矩陣YYY中對應(yīng)位置元素,共同構(gòu)成一個點(diǎn)的完整坐標(biāo)。如B點(diǎn)坐標(biāo)

下面可以自己用matplotlib來試一試,輸出就是上邊的圖

import numpy as np
import matplotlib.pyplot as plt

x = np.array([[0, 1, 2], [0, 1, 2]])
y = np.array([[0, 0, 0], [1, 1, 1]])


plt.plot(x, y,
   color='red', # 全部點(diǎn)設(shè)置為紅色
   marker='.', # 點(diǎn)的形狀為圓點(diǎn)
   linestyle='') # 線型為空,也即點(diǎn)與點(diǎn)之間不用線連接
plt.grid(True)
plt.show()

如果對matplotlib不熟悉,可能只知道用一列橫坐標(biāo)(線性代數(shù)中的1維列向量),一列縱坐標(biāo)生成(兩者元素個數(shù)相等)一些點(diǎn)。但是實(shí)際上,給matplotlib的坐標(biāo)信息是矩陣也是可以的,只要橫縱坐標(biāo)的尺寸一樣。都會按照對應(yīng)關(guān)系生成點(diǎn)。

但是有需要注意的地方,按照矩陣給坐標(biāo)點(diǎn)信息,matplotlib會把橫坐標(biāo)矩陣中,每一列對應(yīng)的點(diǎn)當(dāng)做同一條線。

舉個例子,把上面的代碼plotlinestyle=''刪掉,或者變成linestyle='-'(這個操作把圖的線型改為默認(rèn)狀態(tài)),就會發(fā)現(xiàn)A-D是連接的,B-E是連接的,C-F是連接的,也即,會認(rèn)為你輸入的是3條線,如圖

作為練習(xí),自己試著生成如下結(jié)果

提示:線型等關(guān)鍵字參數(shù)設(shè)置可用如下代碼

plt.plot(x, y,
   marker='.', # 點(diǎn)的形狀為圓點(diǎn)
   markersize=10, # 點(diǎn)設(shè)置大一點(diǎn),看著清楚
   linestyle='-.') # 線型為點(diǎn)劃線

答案

import numpy as np
import matplotlib.pyplot as plt

x = np.array([[0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3],
    [0, 1, 2, 3]])
y = np.array([[0, 0, 0, 0],
    [1, 1, 1, 1],
    [2, 2, 2, 2],
    [3, 3, 3, 3]])


plt.plot(x, y,
   marker='.', # 點(diǎn)的形狀為圓點(diǎn)
   markersize=10, # 點(diǎn)設(shè)置大一點(diǎn),看著清楚
   linestyle='-.') # 線型為點(diǎn)劃線
plt.grid(True)
plt.show()

到這里,網(wǎng)格點(diǎn)和坐標(biāo)矩陣的概念就解釋清楚了。

那么問題來了,如果需要的圖比較大,需要大量的網(wǎng)格點(diǎn)該怎么辦呢?比如下面的這種


最直接但是最笨的方法,就是按照上面的方法把橫縱坐標(biāo)矩陣XXX,YYY寫出來,就像上面練習(xí)題中的


很明顯,對于網(wǎng)格點(diǎn)很多的情況根本沒法用。有啥好的辦法嗎?

有的,注意到我們練習(xí)題中的坐標(biāo)矩陣,其實(shí)有大量的重復(fù)——XXX的每一行都一樣,YYY的每一列都一樣?;谶@種強(qiáng)烈的規(guī)律性,numpy提供的numpy.meshgrid()函數(shù)可以讓我們快速生成坐標(biāo)矩陣XXX,YYY。

語法:X,Y = numpy.meshgrid(x, y)

輸入的x,y,就是網(wǎng)格點(diǎn)的橫縱坐標(biāo)列向量(非矩陣)
輸出的X,Y,就是坐標(biāo)矩陣。

我們來試驗(yàn)一下:改寫第一個例子中的代碼,用numpy.meshgrid來實(shí)現(xiàn)。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([0, 1, 2])
y = np.array([0, 1])

X, Y = np.meshgrid(x, y)
print(X)
print(Y)


plt.plot(X, Y,
   color='red', # 全部點(diǎn)設(shè)置為紅色
   marker='.', # 點(diǎn)的形狀為圓點(diǎn)
   linestyle='') # 線型為空,也即點(diǎn)與點(diǎn)之間不用線連接
plt.grid(True)
plt.show()
# 從輸出的結(jié)果來看,兩種方法生成的坐標(biāo)矩陣一毛一樣。
[[0 1 2]
 [0 1 2]]
[[0 0 0]
 [1 1 1]]

最后給出上面這個圖的代碼

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,1000,20)
y = np.linspace(0,500,20)

X,Y = np.meshgrid(x, y)

plt.plot(X, Y,
   color='limegreen', # 設(shè)置顏色為limegreen
   marker='.', # 設(shè)置點(diǎn)類型為圓點(diǎn)
   linestyle='') # 設(shè)置線型為空,也即沒有線連接點(diǎn)
plt.grid(True)
plt.show()

參考文獻(xiàn)
http://www.dbjr.com.cn/article/166710.htm

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • django初始化數(shù)據(jù)庫的實(shí)例

    django初始化數(shù)據(jù)庫的實(shí)例

    今天小編就為大家分享一篇django初始化數(shù)據(jù)庫的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python實(shí)現(xiàn)自動打開電腦應(yīng)用的示例代碼

    Python實(shí)現(xiàn)自動打開電腦應(yīng)用的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)自動打開電腦應(yīng)用的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python3.5的包存放的具體路徑

    python3.5的包存放的具體路徑

    在本篇內(nèi)容里小編給大家分享了一篇關(guān)于python3.5的包存放的具體路徑相關(guān)內(nèi)容,有需要的朋友們可以參考下。
    2020-08-08
  • 基于Python實(shí)現(xiàn)萬年歷制作

    基于Python實(shí)現(xiàn)萬年歷制作

    制作一個萬年歷是一個有趣的Python項(xiàng)目,它可以讓您查看任何年份的日歷并獲得特定日期的信息,下面我們就來看看具體是如何使用Python實(shí)現(xiàn)的吧
    2023-12-12
  • python實(shí)現(xiàn)裝飾器、描述符

    python實(shí)現(xiàn)裝飾器、描述符

    本篇文章通過代碼實(shí)例給大家分享了python實(shí)現(xiàn)裝飾器、描述符模擬代碼的過程,對戲需要的讀者可以參考下。
    2018-02-02
  • 利用Python的Twisted框架實(shí)現(xiàn)webshell密碼掃描器的教程

    利用Python的Twisted框架實(shí)現(xiàn)webshell密碼掃描器的教程

    這篇文章主要介紹了利用Python的Twisted框架實(shí)現(xiàn)webshell密碼掃描器的教程,用到了Twisted框架的異步通信機(jī)制,需要的朋友可以參考下
    2015-04-04
  • Python操作SQLite簡明教程

    Python操作SQLite簡明教程

    這篇文章主要介紹了Python操作SQLite簡明教程,簡單明了的入門教程,包含連接、建表、增刪修查等例子,需要的朋友可以參考下
    2014-07-07
  • 詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    詳解Python中生成隨機(jī)數(shù)據(jù)的示例詳解

    在日常工作編程中存在著各種隨機(jī)事件,同樣在編程中生成隨機(jī)數(shù)字的時候也是一樣。每當(dāng)在?Python?中生成隨機(jī)數(shù)據(jù)、字符串或數(shù)字時,最好至少大致了解這些數(shù)據(jù)是如何生成的。所以本文將詳細(xì)為大家講解一下Python是如何生成隨機(jī)數(shù)據(jù),需要的可以參考一下
    2022-04-04
  • Python中異常重試的解決方案詳解

    Python中異常重試的解決方案詳解

    這篇文章主要給大家介紹了在Python中異常重試的解決方案,文中介紹的非常詳細(xì),相信對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編一起來看看吧。
    2017-05-05
  • 跟老齊學(xué)Python之Python文檔

    跟老齊學(xué)Python之Python文檔

    文檔,這個詞語在經(jīng)常在程序員的嘴里冒出來,有時候他們還經(jīng)常以文檔有沒有或者全不全為標(biāo)準(zhǔn)來衡量一個軟件項(xiàng)目是否高大上。那么,軟件中的文檔是什么呢?有什么要求呢?python文檔又是什么呢?文檔有什么用呢?
    2014-10-10

最新評論