中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
【Python數(shù)據(jù)挖掘】第三篇

一、Numpy

數(shù)組是一系列同類(lèi)型數(shù)據(jù)的集合,可以被非零整數(shù)進(jìn)行索引,可以通過(guò)列表進(jìn)行數(shù)組的初始化,數(shù)組也可以通過(guò)索引進(jìn)行切片。

Numpy提供了幾乎全部的科學(xué)計(jì)算方式。

1
2
# numpy 導(dǎo)入方式:
import numpy as np

①、創(chuàng)建數(shù)組:

1.簡(jiǎn)單一二維數(shù)組

1
2
3
4
5
np.array( [1,2,3,4] )                 #  一維數(shù)組
np.array( ['1',5,True] )              #  數(shù)組內(nèi)容為字符型
np.array( [True,True] )               #  布爾型數(shù)組
np.array( [[1,2,3,4] , [5,6,7,8]] )   #  二維數(shù)組

2.范圍函數(shù)生成 一維數(shù)組:

1
2
3
4
np.arange([start,] stop[, step,], dtype=None)
np.arange(1,10)
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

3.均分函數(shù)生成 一維數(shù)組:(等差數(shù)列)

1
2
3
4
5
6
7
8
9
10
11
12
13
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
start : 初始值
stop : 末尾值
num : 生成的樣本數(shù) , 必須為非負(fù)數(shù)
endpoint : 默認(rèn)True  , 數(shù)組最后一個(gè)元素為 stop項(xiàng)
# 數(shù)組step計(jì)算:
當(dāng) endpoint = True 時(shí), step =  (end - start) / (num - 1)
當(dāng) endpoint = False 時(shí), step =  (end - start) / num
np.linspace(1,10,num=5,endpoint=False)
# array([ 1. ,  2.8,  4.6,  6.4,  8.2])

4.創(chuàng)建元素為1 的數(shù)組

1
2
np.ones(4)          #  一維數(shù)組  array([ 1.,  1.,  1.,  1.])
np.ones([4,5])      #  二維數(shù)組  4行5列

5.創(chuàng)建元素為0 的數(shù)組

1
2
np.zeros(4)          #  一維數(shù)組   array([ 0.,  0.,  0.,  0.])
np.zeros([4,5])      #  二維數(shù)組   4行5列

6.創(chuàng)建一定形狀的數(shù)組

1
2
3
numpy.empty(shape, dtype=float, order='C')
np.empty([2,3])            # 創(chuàng)建2行3列數(shù)組

7.創(chuàng)建方陣型,行列相等,對(duì)角元素為1,其余元素為0

1
2
3
4
5
np.eye(4)                       #  4行4列 ,  元素為0 , 對(duì)角線元素為1
array([[ 1.0.0.0.],
       [ 0.1.0.0.],
       [ 0.0.1.0.],
       [ 0.0.0.1.]])

8.創(chuàng)建與某數(shù)組大小相同的數(shù)組,元素為0

1
2
arr1 = np.eye(4)              #  4行4列
arr2 = np.empty_like(arr1)    #  4行4列

9.Series轉(zhuǎn)換Array

1
np.array(series)

②、Numpy下的random類(lèi)創(chuàng)建 隨機(jī)數(shù)組

1.創(chuàng)建符合 [0:1) 均勻分布 的數(shù)組

1
2
3
np.random.rand(d0, d1, ..., dn)
np.random.rand(4,5)          # 4行5列數(shù)組 

2.創(chuàng)建符合 標(biāo)準(zhǔn)正態(tài)分布 的數(shù)組

1
2
3
np.random.randn(d0, d1, ..., dn)
np.random.randn(4,5)         # 4行5列數(shù)組

3.創(chuàng)建 隨機(jī)整數(shù) 的數(shù)組 , (不包含)

1
2
3
4
5
np.random.randint(low, high=None, size=None, dtype='l')
np.random.randint(5, size=(2, 4))           # 生成0到4之間的 2 x 4數(shù)組
array([[4, 0, 2, 1],
       [3, 2, 2, 0]])

4.創(chuàng)建 隨機(jī)整數(shù) 的數(shù)組 , (包含)

1
2
3
4
5
np.random.random_integers(low, high=None, size=None)
np.random.random_integers(5, size=(2, 4))   # 生成1到5之間的 2 x 4數(shù)組
array([[3, 3, 4, 3],
       [3, 4, 1, 5]])

5.創(chuàng)建 [0.0,1.0) 隨機(jī)浮點(diǎn)數(shù)

1
2
3
4
5
6
7
np.random.random(size=None)
np.random.random_sample(size=None)
np.random.ranf(size=None)
np.random.sample(size=None)
np.random.random( (5,) )
np.random.random_sample( (4,5) )           # 4行5列 浮點(diǎn)數(shù)數(shù)組

6.從給定的1-D數(shù)組 生成隨機(jī)樣本

1
2
3
4
5
6
7
8
np.random.choice(a, size=None, replace=True, p=None)
p:1-D array-like,可選 ( 設(shè)置概率 )與a中的每個(gè)條目相關(guān)聯(lián)的概率。如果沒(méi)有給出樣本,則假設(shè)在a中的所有條目均勻分布。
np.random.choice(5, 3)                  #  從np.arange(5)生成大小為3的均勻隨機(jī)樣本:
np.random.choice(5, 3, replace=False)   #  從np.arange(5)生成大小為3的均勻隨機(jī)樣本,沒(méi)有重復(fù):
aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])

7.返回隨機(jī)字節(jié)

1
2
3
4
np.random.bytes(length)
np.random.bytes(10)
# b'u\x1e\xd6\x8d\xf5]\xab6\xed\x0c'

③、重要屬性

1
2
3
4
np.shape     # 查看數(shù)組的維度  如:  (4,)  一個(gè)數(shù)字代表1維 , (5,6) 代表二維,5行6列數(shù)組  , .....
np.size      # 查看數(shù)組元素總個(gè)數(shù)
np.ndim      # 查看數(shù)組維度數(shù)
len(array)   # 查看數(shù)組行數(shù)

④、重要方法

1. 給定條件判斷元素

1
2
3
4
5
6
numpy.where(condition[, x, y])                #  根據(jù)條件,從x或y返回元素。
np.where(arr1 > 0 , True , False )
array([[FalseTrueTrue, False],
       [ True, False, False, False],
       [ TrueTrueTrue, False]], dtype=bool)

2.查找數(shù)組唯一元素

1
2
3
4
5
6
7
8
np.unique(ar, return_index=False, return_inverse=False, return_counts=False)[source]
return_counts = True   # 返回出現(xiàn)次數(shù)<br>
np.unique([1, 1, 2, 2, 3, 3])
# array([1, 2, 3])
a = np.array([[1, 1], [2, 3]])
np.unique(a)
# array([1, 2, 3])

3.兩個(gè)數(shù)組連接 

1
2
3
4
5
6
7
8
9
10
np.concatenate((a1, a2, ...), axis=0)     # 沿現(xiàn)有軸連接數(shù)組序列。
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
np.concatenate((a, b), axis=0)
array([[1, 2],
       [3, 4],
       [5, 6]])
np.concatenate((a, b.T), axis=1)

⑤、索引與切片

⑥、數(shù)組計(jì)算

1.加法

1
2
3
4
5
6
7
a = np.array([1,2,3])
b = np.array([-1,2,-4])
np.add(x1, x2[, out]) = <ufunc 'add'>
np.add(a,b)              #  等效于 a + b
# array([ 0,  4, -1])

2.減法

1
2
3
np.subtract(x1, x2[, out]) = <ufunc 'subtract'>
np.subtract(a,b)       # a - b

3.乘法

1
2
3
np.multiply(x1, x2[, out]) = <ufunc 'multiply'>
np.multiply(a,b)       # a * b

4.除法

1
2
3
np.divide(x1, x2[, out]) = <ufunc 'divide'>
np.divide(a,b)         # a / b

5.點(diǎn)積 (相乘后把元素相加)  

兩矩陣的點(diǎn)積 需要 左邊矩陣列 與 右邊矩陣行 數(shù)目相等

1
2
3
4
np.dot(a, b, out=None)
np.dot(a,b)
np.dot(a,b.T)

6.廣播

兩矩陣相加 , 類(lèi)型shape不一樣時(shí) , 自動(dòng)廣播計(jì)算 ,作用在每一行每個(gè)元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
arr1 = np.random.randint(1,10,size=(3,4))
array([[3, 3, 4, 1],
       [8, 4, 8, 2],
       [6, 4, 4, 9]])
arr2 = np.array([2,2,2,2])
array([2, 2, 2, 2])
arr1 + arr2
array([[ 5563],
       [106, 104],
       [ 866, 11]])
# 方式二 :
arr1 + 6           # 每個(gè)元素都加6

7.求和

1
2
3
4
5
6
7
8
9
np.sum(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue>)
# 給定軸上的數(shù)組元素的總和。
np.sum([0.5, 1.5])
#  2.0
np.sum([[0, 1], [0, 5]], axis=0)
#  array([0, 6])
np.sum([[0, 1], [0, 5]], axis=1)
#  array([1, 5])

8.求平均

1
2
3
4
5
6
7
8
np.mean(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue>)
# 沿指定軸計(jì)算算術(shù)平均值。
a = np.array([[1, 2], [3, 4]])
np.mean(a)
#  2.5
np.mean(a, axis=0)
#  array([ 2.,  3.])

9.求平方根

1
2
3
4
5
np.sqrt(x[, out]) = <ufunc 'sqrt'>
# 按元素方式返回?cái)?shù)組的正平方根。
np.sqrt([1,4,9])
# array([ 1.,  2.,  3.])

10.求指數(shù)

1
2
np.exp(x[, out]) = <ufunc 'exp'>
# 計(jì)算輸入數(shù)組中所有元素的指數(shù)。

11.求絕對(duì)值

1
2
3
4
5
6
np.absolute(x[, out]) = <ufunc 'absolute'>
# 逐個(gè)計(jì)算絕對(duì)值。
x = np.array([-1.2, 1.2])
np.absolute(x)
# array([ 1.2,  1.2])

12.求自然對(duì)數(shù)

1
2
np.log(x[, out]) = <ufunc 'log'>
# 自然對(duì)數(shù),逐元素。

⑦、線性代數(shù)計(jì)算

1.數(shù)組轉(zhuǎn)置

1
2
arr1 = np.random.randint(0,10,size=(4,4))
np.transpose(arr1)            # arr1.T

2.矩陣的逆

1
2
3
4
5
a = np.array([[1,2],[4,7]])
np.linalg.inv(a)
array([[-7.2.],
       [ 4., -1.]])

3.沿?cái)?shù)組的對(duì)角線返回總和

1
2
3
a = np.array([[1,2],[4,7],[5,2]])
np.trace(a)
# 8

4.正方形數(shù)組的特征值和右特征向量

1
2
3
4
5
w, v = np.linalg.eig(np.array([ [1, -1], [1, 1] ]))
w; v
array([ 1. + 1.j1. - 1.j])
array([[ 0.70710678+0.j        0.70710678+0.j        ],
       [ 0.00000000-0.70710678j0.00000000+0.70710678j]])
二、可視化

①、matplotlib 導(dǎo)入方式:                       ??官方文檔

1
import matplotlib.pyplot as plt

②、條形圖

1
2
3
4
5
6
7
8
9
plt.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)
y = np.array([10,20,30,50])
x = np.arange(len(y))
plt.bar(x,y,color='r')                  # 垂直方向
plt.show()
plt.barh(x,y,color='r')                # 水平方向
plt.show()

③、多圖形排列

1
2
3
4
5
6
7
8
y = np.random.randint(10,100,size=(4,4))
x = np.arange(4)
plt.bar(x,y[0],color='r',width=0.25)
plt.bar(x+0.25,y[1],color='b',width=0.25)
plt.bar(x+0.5,y[2],color='g',width=0.25)
plt.show()

④、圖形堆疊

1
2
3
plt.bar(x,y[0],color='r')
plt.bar(x,y[1],color='y',bottom=y[0])
plt.bar(x,y[2],color='g',bottom=y[0] + y[1])

⑤、散點(diǎn)圖

1
2
3
data = np.random.rand(1024,2)
plt.scatter(data[:,0],data[:,1])
plt.show()

⑥、直方圖

1
2
3
x = np.random.rand(1000)
plt.hist(x,bins=50)             # 顯示50條
plt.show()

⑦、箱形圖

1
2
3
x = np.random.randn(100,5)
plt.boxplot(x)
plt.show()

 

注意:

numpy數(shù)組計(jì)算中*和dot是有很大區(qū)別的

1.numpy乘法運(yùn)算中"*"是數(shù)組元素逐個(gè)計(jì)算具體代碼如下


 

2.numpy乘法運(yùn)算中dot是按照矩陣乘法的規(guī)則來(lái)運(yùn)算的具體實(shí)現(xiàn)代碼如下:

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
50個(gè)常用的 Numpy 函數(shù)詳解!
Python數(shù)據(jù)分析庫(kù)-Numpy庫(kù)在數(shù)據(jù)分析中的知識(shí)點(diǎn)(一)
Python小程序--模擬擲骰子
python數(shù)據(jù)分析基礎(chǔ)——numpy和matplotlib
Python數(shù)據(jù)分析之numpy學(xué)習(xí)(二)
Numpy入門(mén)教程:練習(xí)作業(yè)01
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服