最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?numpy庫之如何使用matpotlib庫繪圖

 更新時間:2022年10月13日 08:33:34   作者:迷途君  
Numpy的主要對象是同構(gòu)多維數(shù)組,它是一個元素表,所有類型都相同,由非負整數(shù)元組索引,在Numpy維度中稱為軸,這篇文章主要介紹了python?numpy庫?使用matpotlib庫繪圖,需要的朋友可以參考下

 

一.Numpy庫

1.什么是numpy?

numpy是python進行科學計算的一個基礎(chǔ)軟件包,他是一個python庫,提供多維數(shù)組對象,各種派生對象(如掩碼數(shù)組和矩陣),以及用于數(shù)組快速操作的各種API,包括數(shù)學,邏輯,形狀操作,排序,選擇,輸入輸出,離散傅里葉變化,基本線性代數(shù),基本統(tǒng)計運算和隨機模擬等。

2.Numpy數(shù)組和原生Python array數(shù)組之間的區(qū)別

1.Numpy數(shù)組在創(chuàng)建時具有固定的大小,與python的原生數(shù)組對象可以動態(tài)增長不同,更改其大小將會創(chuàng)建一個新的數(shù)組并刪除原來的數(shù)組。

2.Numpy數(shù)組中的元素都需要具有相同的數(shù)據(jù)類型,因此在內(nèi)存中的大小相同。

3.Numpy數(shù)組有助于對大量數(shù)據(jù)進行高級教學和其他類型的操作,執(zhí)行效率高

3.Numpy數(shù)組

假如我們現(xiàn)在有兩個數(shù)組,我們要將兩個數(shù)組對應位置的值相乘,在c語言中我們需要用到循環(huán)來解決,而使用numpy數(shù)組那我們可以直接將兩個數(shù)組進行乘法運算,只需要一行代碼即可。

 軸:

Numpy的主要對象是同構(gòu)多維數(shù)組,它是一個元素表,所有類型都相同,由非負整數(shù)元組索引,在Numpy維度中稱為

比如:

數(shù)組【1,2,1】:有一個軸,該軸有三個元素1,2,1,軸長為3,這里一軸表示一維數(shù)組

數(shù)組【【1,0,0】,【0,1,2】】:有兩個軸,一軸長度為2,二軸長度為3,這里表示二維數(shù)組。

ndarray對象屬性如下:

1.ndarray.ndim-數(shù)組的軸(維度)的個數(shù)

2.ndarray.shape--數(shù)組的維度,若有n行,m列則輸出為(n,m)

3.ndarray.size--數(shù)組元素的總數(shù)

4.ndarray.dtype--一個描述數(shù)組中元素類型的對象,可以使用標準的python類型創(chuàng)建或指定dtype.

5.ndarray.itemsize--數(shù)組中每個元素的字節(jié)大小

6.reshape

來看一段代碼了解把:

import numpy as np
 
# 同構(gòu)生成numpy的一維數(shù)組
a = np.arange(1, 10, 2)
print(a)
# shape打印numpy數(shù)組的形狀
print(a.shape)
# ndim打印numpy數(shù)組的軸數(shù)
print(a.ndim)
# numpy數(shù)組元素的訪問,數(shù)組名【下標】
print(a[0])

 (1).array方法,將一個列表所有元素同構(gòu)成一個數(shù)組

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
a = np.array(list1)
print(a)
print(a.shape)

 (2)array方法,將一個列表所有元素同構(gòu)成一個二維數(shù)組

list2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = np.array(list2)
print(b.shape)

 (3) reshape():改變數(shù)組的維度等形狀

a = np.arange(1, 21, 1).reshape(4, 5)
print(a)
print(a.shape)

 

還有許多其他的屬性,接下來我貼一張圖來總結(jié)展示就不過多贅述了:

 4.numpy數(shù)組的運算

        numpy的運算我用下面一段代碼來進行總結(jié),注意沒有除法運算

import numpy as np
 
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
 
# 乘法運算,將二維數(shù)組(矩陣)對應元素相乘
c = a * b
print(c)
# 加法運算,將二維數(shù)組(矩陣)對應元素相加
c = a + b
print(c)
# 減法運算
c = a - b
print(c)
 
print(a.sum())
print(a.max())
print(a.min())
print(a)
# sum(axis=1):將矩陣中各行的所有元素相加作為新元素
print(a.sum(axis=1))
# sum(axis=1):將矩陣中各列元素相加作為新元素
print(a.sum(axis=0))

 

5.numpy的索引,切片 

numpy每個軸都會有自己的索引

1.元素訪問【第一軸索引,第二軸索引,......】

2.元素的切片 【start: stop: step, start:stop:step,.....】

左閉右開 eg: b[1: 3, 2: 4]

import numpy as np
 
a = np.arange(10)
print(a.shape)
print(a)
print(a[0], a[-1], a[a.size-1]) # -1表示最后1位
print(a[1: 5]) # 1-5,步長為1 左閉右開
print(a[1:: 2]) # 1-末尾 ,步長為2,左閉右開

二維數(shù)組切片:

b = np.arange(20).reshape(4, 5)
print(b)
print(b.shape)
print(b[1][1], b[1][1: -1])
print(b[1, 1], b[1, 1: -1])
print(b[1: 3, 2: 4])

三維數(shù)組的切片:

c = np.arange(24).reshape(4, 3, 2)
print(c)
print(c[0: 2, 0: 2, 0: 1])

二.matplotlib

matplotlib是python2D繪圖領(lǐng)域使用最廣泛的套件,它能讓使用者很輕松將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式,在繪圖結(jié)構(gòu)中,figure創(chuàng)建窗口,subplot創(chuàng)建子圖,所有的繪圖只能在子圖上進行,plt表示當前子圖,若沒有就創(chuàng)建一個子圖。

1.繪制直線

我們只需要將兩點的x,y坐標進行同構(gòu)成為兩個一維數(shù)組,通過plot方法就可以實現(xiàn),也可以改變參數(shù)來修改直線的顏色

import numpy as np
import matplotlib.pyplot as plt
"""
    1.繪制直線,直線兩點為(2, 1) (8, 9)
"""
x = np.array([2, 8])  # 將兩點的x軸坐標,同構(gòu)成一個一維數(shù)組
y = np.array([1, 9])  # 將兩點的y軸坐標,同構(gòu)成一個一維數(shù)組
 
# 繪制直線
plt.plot(x, y)
# plt.plot(x, y, scalex=5, scaley=3)
# 顯示窗口
plt.show()

 2.繪制曲線

使用arange方法生成0-4Π之間的x坐標,均勻分布步長為0.1,y左邊則按正弦函數(shù)進行分布

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 4 * np.pi, 0.1) # 0-4Π之間,均勻分配,步長0.1
y = np.sin(x) # 呈正弦變化
plt.plot(x, y)
plt.show()

3.散點圖繪制 

散點圖繪制,主要在繪制坐標點的基礎(chǔ)上,通過控制坐標點的分布來控制散點圖的分布情況

import numpy as np
import matplotlib.pyplot as plt
"""
2.繪制坐標點
"""
x = np.array([6])
y = np.array([6])
# scatter:繪制點,第1,2參數(shù)為坐標,s表示面積,c表示顏色,marker表示形狀
plt.scatter(x, y, s=100, c='b', marker="*")
plt.show()
 
"""
3.繪制散點圖,呈現(xiàn)正態(tài)分布
"""
 # np.random:產(chǎn)生隨機數(shù)
 # normal(0, 3, 500):在0-3之間產(chǎn)生500個正態(tài)分布的隨機數(shù)
 x = np.random.normal(0, 3, 1000)
 y = np.random.normal(0, 3, 1000)
 # 將這1000個點中前500個畫成紅色圓形,后500個畫成藍色星型
 plt.scatter(x[0: 500], y[0: 500], c='r', marker="o")
 plt.scatter(x[500: 1000], y[500: 1000], c='b', marker="*")
 plt.show()

 4.多界面繪制

import numpy as np
import matplotlib.pyplot as plt
"""
4.多界面繪制,其實就是在一figure窗口使用多個子圖
"""
x = np.array([1, 3, 6, 9])
y = np.array([2, 3, 8, 7])
# 指定繪制的子圖的位置
# 221表示二行2列, 共四個子圖的第1幅圖
# 222表示二行2列,共四個子圖的的第2幅圖
# 223表示二行2列,共四個子圖的的第3幅圖
# 224表示二行2列,共四個子圖的的第4幅圖
plt.subplot(221)
plt.plot(x, y, c='r')
 
plt.subplot(222)
plt.plot(x, y, c='b')
 
plt.subplot(223)
plt.plot(x, y, c='g')
 
plt.subplot(224)
plt.plot(x, y, c='y')
plt.show()

 5.柱形圖繪制

6.3D圖形繪制

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
 
"""
繪制3d圖
"""
# 創(chuàng)建窗口
fig = plt.figure()
# 在該窗口中創(chuàng)建3d繪圖對象
ax = Axes3D(fig)
 
# 創(chuàng)建點的x和y坐標數(shù)組
x = np.arange(-3, 3, 0.2)
y = np.arange(-3, 3, 0.2)
# 網(wǎng)格化處理
x, y = np.meshgrid(x, y)
# 計算某個點到 原點的距離為半徑
r = np.sqrt(x**2 + y**2)
# 以半徑為基準,求它的正弦值為點的z軸坐標
z = np.sin(r)
# 繪制圖像
ax.plot_surface(x, y, z, rstride=3, cstride=1, cmap="hot")
plt.show()

到此這篇關(guān)于python numpy庫 使用matpotlib庫繪圖的文章就介紹到這了,更多相關(guān)python numpy庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于Pymssql模塊實現(xiàn)連接SQL Server數(shù)據(jù)庫的方法詳解

    Python基于Pymssql模塊實現(xiàn)連接SQL Server數(shù)據(jù)庫的方法詳解

    這篇文章主要介紹了Python基于Pymssql模塊實現(xiàn)連接SQL Server數(shù)據(jù)庫的方法,較為詳細的分析了pymssql模塊的下載、安裝及連接、操作SQL Server數(shù)據(jù)庫的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • python 將日期戳(五位數(shù)時間)轉(zhuǎn)換為標準時間

    python 將日期戳(五位數(shù)時間)轉(zhuǎn)換為標準時間

    這篇文章主要介紹了python 將日期戳(五位數(shù)時間)轉(zhuǎn)換為標準時間的實現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • PyCharm運行Python代碼時出現(xiàn)"未找到模塊"錯誤解決步驟

    PyCharm運行Python代碼時出現(xiàn)"未找到模塊"錯誤解決步驟

    在使用python的過程中經(jīng)常會遇到一個問題,就是叫什么名字的模塊未發(fā)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于PyCharm運行Python代碼時出現(xiàn)"未找到模塊"錯誤的解決步驟,需要的朋友可以參考下
    2023-11-11
  • Python中的None與 NULL(即空字符)的區(qū)別詳解

    Python中的None與 NULL(即空字符)的區(qū)別詳解

    這篇文章主要介紹了Python中的None與 NULL(即空字符)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • django 自定義過濾器的實現(xiàn)

    django 自定義過濾器的實現(xiàn)

    這篇文章主要介紹了django 自定義過濾器的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形

    利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形

    今天小編就為大家分享一篇利用matplotlib實現(xiàn)根據(jù)實時數(shù)據(jù)動態(tài)更新圖形,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 一文帶你輕松搞定Python正則匹配

    一文帶你輕松搞定Python正則匹配

    在python?中,正則匹配用到的還是挺多的,下面這篇文章主要給大家介紹了關(guān)于Python正則匹配的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • Python 200行代碼實現(xiàn)一個滑動驗證碼過程詳解

    Python 200行代碼實現(xiàn)一個滑動驗證碼過程詳解

    這篇文章主要介紹了Python 200行代碼實現(xiàn)一個滑動驗證碼過程詳解,各種各樣的驗證碼,比較高級的有滑動、點選等樣式,看起來好像挺復雜的,但實際上它們的核心原理還是還是很清晰的,本文章大致說明下這些驗證碼的原理以及帶大家實現(xiàn)一個滑動驗證碼
    2019-07-07
  • Python中Parser的超詳細用法實例

    Python中Parser的超詳細用法實例

    Parser模塊為Python的內(nèi)部解析器和字節(jié)碼編譯器提供了一個接口,該接口的主要目的是允許Python代碼編輯Python表達式的分析樹并從中創(chuàng)建可執(zhí)行代碼,這篇文章主要給大家介紹了關(guān)于Python中Parser超詳細用法的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Python讀取xlsx文件的實現(xiàn)方法

    Python讀取xlsx文件的實現(xiàn)方法

    這篇文章主要介紹了Python讀取xlsx文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論

昭平县| 青海省| 丰宁| 梁山县| 昂仁县| 廊坊市| 泸水县| 耒阳市| 启东市| 四川省| 招远市| 东乌珠穆沁旗| 集贤县| 松江区| 巴里| 余江县| 融水| 新密市| 买车| 景德镇市| 博白县| 岱山县| 循化| 梧州市| 霸州市| 临邑县| 合作市| 镇江市| 彭州市| 西青区| 轮台县| 平湖市| 恩平市| 双辽市| 武陟县| 锦屏县| 克东县| 五寨县| 池州市| 金溪县| 三江|