目錄
?
1、常用庫
2、shape與reshape,dtype
3、range、arange、linspace、logspace
4、數組的計算、切片
5、繪圖基本設置
6.三維繪圖
1、常用庫
numpy、scipy、matplotlib、math
2、shape與reshape,dtype
https://blog.csdn.net/qq_45769063/article/details/106541141
dtype可以控制輸出的格式
np.linspace(start,end,point_num,dtype = np.type)
3、range、arange、linspace、logspace
range(start,end,step)
numpy.arange(start,end,step)
等差數列,根據起始與終值和數字數目進行創建
numpy.linspace(start,end,point_number)
等比數列,start為等比數列第一個數值的指數,end表示最后一個數值的指數
numpy.logspace(start,end,point_number,endpoint=False,Base=10)endpoint=True:用于控制是否包含終點的值,默認為FalseBase=n,表示等比數列是以n為底的等比數列,通過logspace是定義了以n為底數的指數形式
4、數組的計算、切片
a.reshape((-1,1))表示將a數組轉化為一列的數組即列向量a[a>0.5]輸出a數組中大于0.5的數字print(a>0.5)打印出來的是布爾數值,大于0.5為True,小于0.5為falsef = 行向量(1,m) + 列向量(n,1) #得到一個(m,n)的數組
?
a[[0,1,2],[2,3,4]]表示取第0,1,2行和第2,3,4列交叉處的數據a[4,[1,2,3]]表示取第4行與第1,2,3列交叉的數據以上取出來的數據重組返回的是一個一維數組
去重numpy.unique(a)不管a是幾維數組,先將數組a中的數據全部拉長為行向量,再進行去重,得到一個行向量np.array(list(set([tuple(t) for t in a])))利用set集合沒有重復元素的特性進行去重[tuple(t) for t in a]將a數組的元素取出轉換為元組set([tuple(t) for t in a])將元組放入集合中,自動去重list(set([tuple(t) for t in a]))將集合轉化為列表array(list(set([tuple(t) for t in a])))將列表轉化為數組
?
5、繪圖基本設置
import math
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np#繪圖
mpl.rcParams["font.sans-serif"]=[u"simHei"]#保證標題能夠以中文的形式輸出
mpl.rcParams["axes.unicode_minus"]=False#保證坐標值能夠以負數的形式輸出
mu = 0
sigma = 1#定義常熟
x = np.linspace(mu-sigma*3,mu+sigma*3,51)
y = np.exp(-(x-mu)**2/(2*sigma**2))/(math.sqrt(2*math.pi)*sigma)#定義相應的變量以及因變量的值
print (x.shape)
print("x=\n",x)
print(y.shape)
print("y=\n",y)#打印變量以及因變量的大小以及數值
plt.figure(facecolor="w")#定義繪圖的背景色
plt.plot(x,y,"r-",x,y,"go",linewidth = 2,markersize=8)#繪制粗2mm的紅色實線以及8size大小的綠色圓標記號的圖
plt.xlabel("X",fontsize = 20)
plt.ylabel("Y",fontsize = 20)#定義x,y的標簽名稱大小
plt.title("高斯分布",fontsize = 18)#定義繪圖的標題以及文字大小
plt.grid(True)#控制繪圖時網格的繪制與否
plt.show()#窗口繪制的顯示
心形圖
#心形圖
t = np.linspace(0,2*np.pi,100)
x =16*np.sin(t)**3
y = 13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-1*np.cos(4*t)
plt.figure(facecolor='w')
plt.plot(x,y,"r-",label = "heart")#為曲線設置label標簽
plt.legend(loc="upper right")#指定圖例的位置
plt.grid(True)
plt.savefig("heart.png")#將圖片保存到編程的文件夾中
plt.show()
6.三維繪圖
x,y = np.ogrid[-3:3:7j,-3:3:7j]表示x生成為-3到3的7個均布數字組成的列向量y生成-3到3的7個均布數字組成的行向量[[-3.][-2.][-1.][ 0.][ 1.][ 2.][ 3.]][[-1. 0. 1. 2. 3. 4. 5.]]
x,y = np.mgrid[-3:3:7j,-1:5:7j]
print(x)
print(y)列和行向量的擴展填充[[-3. -3. -3. -3. -3. -3. -3.][-2. -2. -2. -2. -2. -2. -2.][-1. -1. -1. -1. -1. -1. -1.][ 0. 0. 0. 0. 0. 0. 0.][ 1. 1. 1. 1. 1. 1. 1.][ 2. 2. 2. 2. 2. 2. 2.][ 3. 3. 3. 3. 3. 3. 3.]][[-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.]]
?