bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

python數據分析系列之——Numpy的使用-創新互聯

1.numpy的導入以及查看版本

創新互聯總部坐落于成都市區,致力網站建設服務有做網站、網站建設、網絡營銷策劃、網頁設計、網站維護、公眾號搭建、微信小程序開發、軟件開發等為企業提供一整套的信息化建設解決方案。創造真正意義上的網站建設,為互聯網品牌在互動行銷領域創造價值而不懈努力!

>>> import numpy as np

>>> print(np.__version__)

1.15.4

2.創建一維(或多維)數組

# 通過list初始化來創建

>>> np.array([1,2,3,4,5])

array([1, 2, 3, 4, 5])

# 通過arange方法生成

>>> np.arange(10)

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 指定創建范圍和步長

>>> np.arange(3,10,2)

array([3, 5, 7, 9])

# 二維(3,3)

>>> np.array([[1,2,3],[4,5,6],[7,8,9]])

array([[1, 2, 3],

[4, 5, 6],

[7, 8, 9]])

# 三維(2,2,2)

>>> np.array([[[1,3],[2,4]],[[3,6],[4,8]]])

array([[[1, 3],

[2, 4]],

[[3, 6],

[4, 8]]])

3.創建布爾數組

# 一維

>>> np.full(3, True, dtype=bool)

array([ True, True, True])

# 二維

>>> np.full((3, 3), True, dtype=bool)

array([[ True, True, True],

[ True, True, True],

[ True, True, True]])

4.從數組中提取(或替換)滿足指定條件的元素

# 提取數組中的所有奇數

>>> arr = np.arange(10)

>>> arr[arr % 2 == 1]

array([1, 3, 5, 7, 9])

# 提取大于4的數

>>> arr[arr > 4]

array([5, 6, 7, 8, 9])

# 替換所有奇數為-1

>>> arr[arr % 2 == 1] = -1

>>> arr

array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

5.改變數組的形狀

>>> arr = np.arange(12)

>>> arr.reshape(2,6)

array([[ 0, 1, 2, 3, 4, 5],

[ 6, 7, 8, 9, 10, 11]])

# 設為-1維數會自動匹配

>>> arr.reshape(3,-1)

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

>>> arr.reshape(2,2,3)

array([[[ 0, 1, 2],

[ 3, 4, 5]],

[[ 6, 7, 8],

[ 9, 10, 11]]])

6.類型轉換

>>> a = np.arange(10)

>>> a.dtype

dtype('int32')

# 轉換為 str 類型

>>> a.astype(str)

array(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], dtype='

# 轉換為 float 類型

>>> a.astype(float)

array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])

7.垂直合并數組

>>> a = np.arange(8).reshape(2,4)

>>> b = np.arange(8,12)

# 方法1

>>> np.vstack((a, b))

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

# 方法2

>>> np.row_stack((a,b))

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

# 方法3,注意 concatenate 垂直合并的兩個數組維數要一致

>>> np.concatenate([a, b], axis=0)

Traceback (most recent call last):

File "", line 1, in

np.concatenate([a, b], axis=0)

ValueError: all the input arrays must have same number of dimensions

>>> np.concatenate([a, [b,b]], axis=0)

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[ 8, 9, 10, 11]])

# 方法4,合并的兩個數組維數要一致

>>> np.r_[a,[b,b]]

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[ 8, 9, 10, 11]])

8.水平合并數組

>>> a = np.arange(8).reshape(2,4)

>>> b = np.arange(8,12).reshape(2,2)

# 方法1

>>> np.hstack((a,b))

array([[ 0, 1, 2, 3, 8, 9],

[ 4, 5, 6, 7, 10, 11]])

# 方法2

>>> np.column_stack((a,b))

array([[ 0, 1, 2, 3, 8, 9],

[ 4, 5, 6, 7, 10, 11]])

# 方法3

>>> np.concatenate([a, b], axis=1)

array([[ 0, 1, 2, 3, 8, 9],

[ 4, 5, 6, 7, 10, 11]])

# 方法4

>>> np.c_[a,b]

array([[ 0, 1, 2, 3, 8, 9],

[ 4, 5, 6, 7, 10, 11]])

9.保存和讀取txt(或csv)

>>> filename = 'data.txt' # or filename = 'data.csv'

>>> a = np.arange(12).reshape(3,4)

# 保存:fmt 指定保存的數據類型,delimiter 指定分隔符

>>> np.savetxt(filename, a, fmt='%d', delimiter=',')

# 讀取:dtype 指定讀取后的類型,delimiter 指定分隔符

>>> np.loadtxt(filename, dtype=float, delimiter=',')

array([[ 0., 1., 2., 3.],

[ 4., 5., 6., 7.],

[ 8., 9., 10., 11.]])

10.數組的特殊運算

>>> a = np.arange(10)

>>> a.sum() # 求和

45

>>> a.max() # 求大值

9

>>> a.min() # 求最小值

0

>>> a.mean() # 求平均值

4.5

>>> a.ptp() # 求數組中元素大值與最小值的差

9

>>> np.median(a) # 求數組的中位數

4.5

>>> np.std(a) # 求數組的標準差

2.8722813232690143

>>> np.var(a) # 求數組的方差

8.25

>>> a ** 2 # a中每個數平方

array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81], dtype=int32)

>>> a.dot(a) # 點積運算,對應元素相乘后求和,返回一個標量

285

>>> a.dot(a.T) # a.T是a的轉置,也可以用 a.transpose()

285

11.創建零矩陣、1矩陣、單位陣

>>> np.zeros((2, 3)) # 零矩陣

array([[0., 0., 0.],

[0., 0., 0.]])

>>> np.ones((4, 3)) # 1矩陣

array([[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.]])

>>> np.identity(3) # 單位陣,也可以用 np.eye(3)

array([[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]])

12.矩陣的特殊運算

(1)array內積運算np.dot()

# 一維內積,對應元素相乘后求和

>>> A=np.array([1, 2, 3])

>>> B=np.array([4, 5, 6])

>>> A.dot(B) # or A.dot(B.T)

32?無錫×××醫院 https://yyk.familydoctor.com.cn/20612/

# 二維內積,矩陣A[m,n]的列數等于矩陣B[n,p]的行數,與線性代數的矩陣乘法相同(C[i,j] = sum(A[i,k] * B[k,i]), k in [i,n])

# 假設C=A·B,則C[1,1] = A[1,1]*B[1,1] + A[1,2]*B[2,1] + A[1,3]*B[3,1] = 1*2 + 2*2 + 3*2 = 12

>>> A=np.array([[1, 2, 3], [4, 5, 6]]) # (2, 3)

>>> B=np.array([[2, 3], [2, 3], [2, 3]]) # (3, 2)

>>> A.dot(B) # or np.dot(A, B)

array([[12, 18],

[30, 45]])

(2)array元素乘法運算np.multiply()

# 元素的乘法運算是矩陣指對應元素相乘,可以用np.multiply(),也可以直接寫" * "運算符

# 元素的乘法運算要求兩個矩陣的維數必須要一致

# 一維數組

>>> A=np.array([1, 2, 3])

>>> B=np.array([4, 5, 6])

>>> A * B

array([ 4, 10, 18])

>>> np.multiply(A, B)

array([ 4, 10, 18])

# 二維數組

>>> A = np.arange(8)

>>> A = A.reshape(2,4)

>>> A

array([[0, 1, 2, 3],

[4, 5, 6, 7]])

>>> A * A

array([[ 0, 1, 4, 9],

[16, 25, 36, 49]])

>>> np.multiply(A, A)

array([[ 0, 1, 4, 9],

[16, 25, 36, 49]])

(3)matrix乘法運算

# matrix乘法運算可使用np.matmul(),也可使用" * "運算符

# matrix乘法運算與array的二維內積相同,所以也可以用np.dot()

>>> MA = np.matrix([[1, 2, 3], [4, 5, 6]])

>>> MB = np.matrix([[2, 3], [2, 3], [2, 3]])

>>> MA

matrix([[1, 2, 3],

[4, 5, 6]])

>>> MB

matrix([[2, 3],

[2, 3],

[2, 3]])

>>> MA * MB

matrix([[12, 18],

[30, 45]])

>>> np.matmul(MA, MB) # or np.dot(MA, MB), MA.dot(MB)

matrix([[12, 18],

[30, 45]])

(4)笛卡爾積運算

# 笛卡爾積也稱為直積,其實就是集合的映射關系,可以用itertools.product()來實現

# 比如A={a, b},B={1,2,3},則A和B的笛卡爾積為{(a,1), (a,2), (a,3), (b,1), (b,2), (b,3)}

>>> import itertools

>>> A = np.array(['a', 'b'])

>>> B = np.array([1, 2, 3])

>>> D = itertools.product(A, B)

>>> list(D) # 直接轉list,list中每個元素為tuple類型

[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]

# 也可以通過循環來遍歷D

>>> for d in D:

print(d)

('a', 1)

('a', 2)

('a', 3)

('b', 1)

('b', 2)

('b', 3)

待更新:

python數據分析系列(二)——Matplotlib的使用

python數據分析系列(三)——Scipy的使用

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章名稱:python數據分析系列之——Numpy的使用-創新互聯
網頁URL:http://vcdvsql.cn/article16/djpsgg.html

成都網站建設公司_創新互聯,為您提供手機網站建設動態網站品牌網站制作微信小程序網站導航域名注冊

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設