日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习-数据科学】第一节:numpypandas

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习-数据科学】第一节:numpypandas 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

numpy&pandas

    • 安裝numpy&pandas
    • array創建
    • numpy的基礎運算
    • numpy的索引
    • numpy的 array 合并
    • numpy的 array分割
    • numpy的 copy & deep copy

安裝numpy&pandas


import numpy as np array=np.array([[1,2,3],[2,3,4]])# 將數組轉化為矩陣 print(array) #打印矩陣 print('number of dim:',array.ndim) #幾維 print('shape:',array.shape) #大小,幾行幾列 print('size:',array.size) #元素的大小

結果:

[[1 2 3][2 3 4]] number of dim: 2 shape: (2, 3) size: 6Process finished with exit code 0

array創建

import numpy as np a=np.array([2,23,4],dtype=np.int) #創建時使用列表 并且確定類型 print(a.dtype)b=np.zeros((3,4)) print(b)c=np.ones((3,4),dtype=np.int) print(c)d=np.empty((3,4)) print(d)e=np.arange(10,100,10) print(e)f=np.arange(12).reshape((3,4)) print(f)g=np.linspace(10,100,10) print(g)h=np.linspace(10,100,10).reshape((2,5)) print(h) int32 [[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]] [[1 1 1 1][1 1 1 1][1 1 1 1]] [[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]] [10 20 30 40 50 60 70 80 90] [[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]] [ 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.] [[ 10. 20. 30. 40. 50.][ 60. 70. 80. 90. 100.]]Process finished with exit code 0

numpy的基礎運算

1.加減乘除 求和

import numpy as np a=np.array([10,20,30,40]) b=np.arange(4) c=a-b #加減 print(a,b,c)d=a**2 #平方d e=10*np.sin(a) #三角函數 print(d,e)print(b) print(b<3) #哪些值小于3#矩陣運算 f=np.array([[10,20],[30,40]]) g=np.arange(4).reshape((2,2)) print(f) print(g) # h=f*g print('逐個相乘結果:\n',h)h_dot=np.dot(f,g) h_dot2=f.dot(g) print('矩陣相乘結果:\n',h_dot) print('矩陣相乘結果2:\n',h_dot2) [10 20 30 40] [0 1 2 3] [10 19 28 37] [ 100 400 900 1600] [-5.44021111 9.12945251 -9.88031624 7.4511316 ] [0 1 2 3] [ True True True False] [[10 20][30 40]] [[0 1][2 3]] 逐個相乘結果:[[ 0 20][ 60 120]] 矩陣相乘結果:[[ 40 70][ 80 150]] 矩陣相乘結果2[[ 40 70][ 80 150]]Process finished with exit code 0 #求和 最大最小值 import numpy as np a=np.random.random((2,4)) print(a) print(np.sum(a)) print(np.sum(a,axis=1)) #axis=1 是在列中求和,axis=0是在行中求和 print(np.min(a)) print(np.min(a,axis=0)) print(np.max(a)) [[0.85663257 0.60903081 0.32588806 0.17383597][0.82810401 0.86504537 0.35610231 0.95728784]] 4.9719269475592105 [1.96538742 3.00653953] 0.17383597454524058 [0.82810401 0.60903081 0.32588806 0.17383597] 0.9572878423829763Process finished with exit code 0

2.其他運算

import numpy as np A =np.arange(2,14).reshape((3,4)) print(A) #最小/大值的索引 print(np.argmin(A)) print(np.argmax(A))#平均值 print(np.mean(A)) print(A.mean()) print(np.average(A)) #print(A.average()) #這個版本不適用 #中位數 print('中位數:',np.median(A),"\n")#累計相加 print(A) print('累計相加:\n',np.cumsum(A),'\n') #累差 print(A) print('累差:\n',np.diff(A),'\n')print('行列:\n',np.nonzero(A),'\n')A=np.arange(14,2,-1).reshape((3,4)) print(A) print('排序:\n',np.sort(A),'\n') #逐行排序print(A) print('轉置') print(np.transpose(A)) print(A.T) print((A.T).dot(A))print(A) print('截取給定的數') print('給定小于5的數等于5,大于9的數等于9\n',np.clip(A,5,9))print('axis=1 是在列中求和,axis=0是在行中求和') print('求行中的平均值:') print(np.mean(A,axis=0)) [[ 2 3 4 5][ 6 7 8 9][10 11 12 13]] 0 11 7.5 7.5 7.5 中位數: 7.5 [[ 2 3 4 5][ 6 7 8 9][10 11 12 13]] 累計相加:[ 2 5 9 14 20 27 35 44 54 65 77 90] [[ 2 3 4 5][ 6 7 8 9][10 11 12 13]] 累差:[[1 1 1][1 1 1][1 1 1]] 行列:(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64)) [[14 13 12 11][10 9 8 7][ 6 5 4 3]] 排序:[[11 12 13 14][ 7 8 9 10][ 3 4 5 6]] [[14 13 12 11][10 9 8 7][ 6 5 4 3]] 轉置 [[14 10 6][13 9 5][12 8 4][11 7 3]] [[14 10 6][13 9 5][12 8 4][11 7 3]] [[332 302 272 242][302 275 248 221][272 248 224 200][242 221 200 179]] [[14 13 12 11][10 9 8 7][ 6 5 4 3]] 截取給定的數 給定小于5的數等于5,大于9的數等于9[[9 9 9 9][9 9 8 7][6 5 5 5]] axis=1 是在列中求和,axis=0是在行中求和 求行中的平均值: [10. 9. 8. 7.]

numpy的索引

import numpy as np A=np.arange(3,15).reshape((3,4)) print(A,"\n") print(A[2]) print(A[2][2]) print(A[2,2]) #與上面同樣功能 print(A[2,:]) #第二行所有數 print(A[:,1]) #第一列所有數 print('A:\n',A)print('第二行,第一列到第二列:') print(A[2,1:3],'\n') #第二行,第一列到第二列print(A) print('打印每一行:') for row in A:print(row) print('打印每一列:') for column in A.T:print(column)print('打印出每個項目:') print(A.flatten()) #返回一個array,flat是一個迭代器 for item in A.flat:print(item) [[ 3 4 5 6][ 7 8 9 10][11 12 13 14]] [11 12 13 14] 13 13 [11 12 13 14] [ 4 8 12] A:[[ 3 4 5 6][ 7 8 9 10][11 12 13 14]] 第二行,第一列到第二列: [12 13] [[ 3 4 5 6][ 7 8 9 10][11 12 13 14]] 打印每一行: [3 4 5 6] [ 7 8 9 10] [11 12 13 14] 打印每一列: [ 3 7 11] [ 4 8 12] [ 5 9 13] [ 6 10 14] 打印出每個項目: [ 3 4 5 6 7 8 9 10 11 12 13 14] 3 4 5 6 7 8 9 10 11 12 13 14Process finished with exit code 0

numpy的 array 合并

import numpy as np A=np.array([1,1,1]) B=np.array([2,2,2])C=np.vstack((A,B)) #vertical stack D=np.hstack((A,B)) #horizontal stack print(C) print(D) print(A.shape,C.shape,D.shape) print(A.T) print(A.T.shape) #么有改成列,要怎么改成列呢?看下面# print(A[np.newaxis,:]) #在行加一個維度 # print(A[:,np.newaxis]) #在列加一個維度 print(A[:,np.newaxis]) #在列加一個維度 print(B[:,np.newaxis])C= np.concatenate((A,B,B,A),axis=0) print(C) [[1 1 1][2 2 2]] [1 1 1 2 2 2] (3,) (2, 3) (6,) [1 1 1] (3,) [[1][1][1]] [[2][2][2]] [1 1 1 2 2 2 2 2 2 1 1 1]Process finished with exit code 0

numpy的 array分割

import numpy as npA =np.arange(12).reshape((3,4)) print(A)print(np.split(A,3,axis=0)) [[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]] [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]Process finished with exit code 0

但是機器學習里經常需要實現不等量分割:

import numpy as npA =np.arange(12).reshape((3,4)) print(A)print(np.array_split(A,3,axis=1)) [[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]] [array([[0, 1],[4, 5],[8, 9]]), array([[ 2],[ 6],[10]]), array([[ 3],[ 7],[11]])]Process finished with exit code 0

另外一種用法:

import numpy as npA =np.arange(12).reshape((3,4)) print(A)#print(np.array_split(A,3,axis=1))print(np.vsplit(A,3)) print(np.hsplit(A,2)) [[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]] [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])] [array([[0, 1],[4, 5],[8, 9]]), array([[ 2, 3],[ 6, 7],[10, 11]])]Process finished with exit code 0

numpy的 copy & deep copy

import numpy as np a=np.arange(4) print(a) b=a c=a d=b a[0]=11 print(a) print(b is a) print(b,c,d) #改變其中任意一個 都會改變 d[1:3]=[22,23] print(b,c,d)#deep copy b=a.copy() #把a的值賦給b,但是不關聯 a[3]=45 print(a,b) print(b is a) [0 1 2 3] [11 1 2 3] True [11 1 2 3] [11 1 2 3] [11 1 2 3] [11 22 23 3] [11 22 23 3] [11 22 23 3] [11 22 23 45] [11 22 23 3] FalseProcess finished with exit code 0

總結

以上是生活随笔為你收集整理的【机器学习-数据科学】第一节:numpypandas的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。