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

python?numpy庫(kù)之如何使用matpotlib庫(kù)繪圖

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

 

一.Numpy庫(kù)

1.什么是numpy?

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

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

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

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

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

3.Numpy數(shù)組

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

 軸:

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

比如:

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

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

ndarray對(duì)象屬性如下:

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

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

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

4.ndarray.dtype--一個(gè)描述數(shù)組中元素類型的對(duì)象,可以使用標(biāo)準(zhǔn)的python類型創(chuàng)建或指定dtype.

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

6.reshape

來(lái)看一段代碼了解把:

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ù)組元素的訪問(wèn),數(shù)組名【下標(biāo)】
print(a[0])

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

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

 (2)array方法,將一個(gè)列表所有元素同構(gòu)成一個(gè)二維數(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)

 

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

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

        numpy的運(yùn)算我用下面一段代碼來(lái)進(jìn)行總結(jié),注意沒有除法運(yùn)算

import numpy as np
 
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
 
# 乘法運(yùn)算,將二維數(shù)組(矩陣)對(duì)應(yīng)元素相乘
c = a * b
print(c)
# 加法運(yùn)算,將二維數(shù)組(矩陣)對(duì)應(yīng)元素相加
c = a + b
print(c)
# 減法運(yùn)算
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每個(gè)軸都會(huì)有自己的索引

1.元素訪問(wèn)【第一軸索引,第二軸索引,......】

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,步長(zhǎng)為1 左閉右開
print(a[1:: 2]) # 1-末尾 ,步長(zhǎng)為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)建子圖,所有的繪圖只能在子圖上進(jìn)行,plt表示當(dāng)前子圖,若沒有就創(chuàng)建一個(gè)子圖。

1.繪制直線

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

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

 2.繪制曲線

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

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

3.散點(diǎn)圖繪制 

散點(diǎn)圖繪制,主要在繪制坐標(biāo)點(diǎn)的基礎(chǔ)上,通過(guò)控制坐標(biāo)點(diǎn)的分布來(lái)控制散點(diǎn)圖的分布情況

import numpy as np
import matplotlib.pyplot as plt
"""
2.繪制坐標(biāo)點(diǎn)
"""
x = np.array([6])
y = np.array([6])
# scatter:繪制點(diǎn),第1,2參數(shù)為坐標(biāo),s表示面積,c表示顏色,marker表示形狀
plt.scatter(x, y, s=100, c='b', marker="*")
plt.show()
 
"""
3.繪制散點(diǎn)圖,呈現(xiàn)正態(tài)分布
"""
 # np.random:產(chǎn)生隨機(jī)數(shù)
 # normal(0, 3, 500):在0-3之間產(chǎn)生500個(gè)正態(tài)分布的隨機(jī)數(shù)
 x = np.random.normal(0, 3, 1000)
 y = np.random.normal(0, 3, 1000)
 # 將這1000個(gè)點(diǎn)中前500個(gè)畫成紅色圓形,后500個(gè)畫成藍(lán)色星型
 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.多界面繪制,其實(shí)就是在一figure窗口使用多個(gè)子圖
"""
x = np.array([1, 3, 6, 9])
y = np.array([2, 3, 8, 7])
# 指定繪制的子圖的位置
# 221表示二行2列, 共四個(gè)子圖的第1幅圖
# 222表示二行2列,共四個(gè)子圖的的第2幅圖
# 223表示二行2列,共四個(gè)子圖的的第3幅圖
# 224表示二行2列,共四個(gè)子圖的的第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繪圖對(duì)象
ax = Axes3D(fig)
 
# 創(chuàng)建點(diǎn)的x和y坐標(biāo)數(shù)組
x = np.arange(-3, 3, 0.2)
y = np.arange(-3, 3, 0.2)
# 網(wǎng)格化處理
x, y = np.meshgrid(x, y)
# 計(jì)算某個(gè)點(diǎn)到 原點(diǎn)的距離為半徑
r = np.sqrt(x**2 + y**2)
# 以半徑為基準(zhǔn),求它的正弦值為點(diǎn)的z軸坐標(biāo)
z = np.sin(r)
# 繪制圖像
ax.plot_surface(x, y, z, rstride=3, cstride=1, cmap="hot")
plt.show()

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

相關(guān)文章

  • Python優(yōu)化技巧之利用ctypes提高執(zhí)行速度

    Python優(yōu)化技巧之利用ctypes提高執(zhí)行速度

    ctypes是Python的一個(gè)外部庫(kù),提供和C語(yǔ)言兼容的數(shù)據(jù)類型,可以很方便地調(diào)用C DLL中的函數(shù)。今天我們就來(lái)詳細(xì)探討下ctypes庫(kù)的使用技巧
    2016-09-09
  • python得到電腦的開機(jī)時(shí)間方法

    python得到電腦的開機(jī)時(shí)間方法

    今天小編就為大家分享一篇python得到電腦的開機(jī)時(shí)間方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Python list與NumPy array 區(qū)分詳解

    Python list與NumPy array 區(qū)分詳解

    這篇文章主要介紹了Python list與NumPy array 區(qū)分詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • pandas 把數(shù)據(jù)寫入txt文件每行固定寫入一定數(shù)量的值方法

    pandas 把數(shù)據(jù)寫入txt文件每行固定寫入一定數(shù)量的值方法

    今天小編就為大家分享一篇pandas 把數(shù)據(jù)寫入txt文件每行固定寫入一定數(shù)量的值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python腳本生成caffe train_list.txt的方法

    python腳本生成caffe train_list.txt的方法

    下面小編就為大家分享一篇python腳本生成caffe train_list.txt的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python input()函數(shù)案例教程

    Python input()函數(shù)案例教程

    在 Python 中,input() 函數(shù)用于獲取用于的輸入,并給出提示。input() 函數(shù),總是返回 string 類型,因此,我們可以使用 input() 函數(shù),獲取用戶輸入的任何數(shù)據(jù)類型 ,這篇文章主要介紹了Python input()函數(shù)案例詳解,需要的朋友可以參考下
    2023-01-01
  • python基于gevent實(shí)現(xiàn)并發(fā)下載器代碼實(shí)例

    python基于gevent實(shí)現(xiàn)并發(fā)下載器代碼實(shí)例

    這篇文章主要介紹了python基于gevent實(shí)現(xiàn)并發(fā)下載器代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了用python實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 簡(jiǎn)析Python的閉包和裝飾器

    簡(jiǎn)析Python的閉包和裝飾器

    這篇文章主要為大家詳細(xì)介紹了Python的閉包和裝飾器,何為閉包?何為裝飾器?感興趣的小伙伴們可以參考一下
    2016-02-02
  • Python實(shí)現(xiàn)修改IE注冊(cè)表功能示例

    Python實(shí)現(xiàn)修改IE注冊(cè)表功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)修改IE注冊(cè)表功能,結(jié)合完整實(shí)例形式分析了Python操作IE注冊(cè)表項(xiàng)的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05

最新評(píng)論