程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python的三大庫之numpy

編輯:Python

1.導入默認為 import numpy as np

創建矩陣

使用np.array()括號內是矩陣的相關信息

最簡單的例子:

ay=np.array([[1,2,3],
[4,5,6]])

這是一個二維的矩陣,相當於c語言裡的二維數組,一般來說,要從外往裡數一下方括號的數量,比如從左數的話數的就是左方括號的數量,從第一個開始,到第一個挨著數字的左方括號結束,有幾個就是幾維,在numpy的文檔裡,你數了幾個左方括號就代表幾個軸,比如數了倆,就是x和y軸,再多一個 就是xyz三個軸,再多的話我也不知道是啥軸,只需要知道維度上升了即可。

與array配套的幾個查看array的屬性的函數

array.ndim// n代表一個數字,dim是dimension(維度)的縮寫,返回int 代表維度
array.shape//返回一對數,代表幾*幾的矩陣
array.size//計算矩陣一共有幾個元素,返回int

進階操作:

1.設置內容類型,在【】之後加'.dtype',d是data的縮寫,dtype=數據類型

主要有 int32,int64,float32,float64

array=np.array([1,2,3],dtpe=np.int32)
array=np.array([1,2,3],dtpe=np.int64)
array=np.array([1,2,3],dtpe=np.float32)
array=np.array([1,2,3],dtpe=np.float64)

2.創建特色矩陣

np.zeros((行數,列數))//告訴電腦,你要幾行幾列的矩陣
np.ones((行數,列數))//告訴電腦,你要幾行幾列的矩陣
np.empty((行數,列數))//告訴電腦,你要幾行幾列的矩陣 這個矩陣生成的應該是無窮小

3創建有序矩陣

np.arange(起點,終點,步長)
np.arange(起點,終點,步長).reshape((行數,列數))//代表創建完矩陣之後我要重新規劃一下他的形狀

4.生成線段

 

np.linspace(起點,終點,段數)//從起點到終點,要生成幾個線段。
np.linspace(起點,終點,段數)。reshape((行數,列數))

矩陣的基礎運算

1.四則運算

//加法
a=np.array([1,2,3,4])
b=np.range(4)//內容為從0-3的一維矩陣
c=a+b
print(c)//依然是得到矩陣,只不過是a的每一個數加去b中的每一個數
//減法
a=np.array([1,2,3,4])
b=np.range(4)//內容為從0-3的一維矩陣
c=a-b
print(c)//依然是得到矩陣,只不過是a的每一個數減去b中的每一個數
//乘法
a=np.array([1,2,3,4])
b=np.range(4)//內容為從0-3的一維矩陣
c=a*b
print(c)//依然是得到矩陣,只不過是a的每一個數*去b中的每一個數
//取整除法
a=np.array([1,2,3,4])
b=np.range(4)//內容為從0-3的一維矩陣
c=a/b
print(c)//依然是得到矩陣,只不過是a的每一個數/去b中的每一個數取整

2.特色運算

//比較大小,返回布爾類型
a=np.array([1,2,3,4])
b=np.array([5,6,7,8])
c=a<b
print(c)
//結果為
[ True True True True]
//多維矩陣適用的乘法
a=np.array([1,2,3,4])
b=np.array([5,6,7,8])
c=np.dot(a,b) or c=a.dot(b)
//線性代數上用的矩陣的乘法,結果為 70
//平方
a=3;
a**2==9//幾次方用**n表示
// 三角函數
a=np.array([1,2,3,4])
b=np.array([5,6,7,8])
c=np.sin(a)//對a中每一個數求sin 也可以用其他的三角函數
print(c)
//求矩陣的和,最大值,最小值
a=np.random.random((2,2))//用隨機數生成一個2行2列的矩陣
print(a)
[[0.34700893 0.85088823]
[0.95787822 0.248027 ]]
//axis 代表軸,0為y軸,1為x軸
//第一個為沿著y軸求和,第三個為沿著y軸求最大值, 第五個為沿著y軸求最小值
print(np.sum(a,axis=0)) //[1.30488715 1.09891523]
print(np.sum(a,axis=1)) //[1.19789715 1.20590522]
print(np.max(a,axis=0))//[0.95787822 0.85088823]
print(np.max(a,axis=1))//[0.85088823 0.95787822]
print(np.min(a,axis=0))//[0.34700893 0.248027 ]
print(np.min(a,axis=1))//[0.34700893 0.248027 ]

3.求某個特色值的索引

a=np.arange(2,14).reshape((3,4))
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
//求最大最小值的索引
print(np.argmax(a)) //11 注意是索引 不是第幾個數!!!!!
print(np.argmin(a))//0
//求平均值
print(a.mean())//注意帶括號 答案為 7.5
print(np.average(a))//答案為 7.5
//求中位數
print(np.median(a)) //7.5
//累加並且保存:累加一次保存一次
print(np.cumsum(a))//[ 2 5 9 14 20 27 35 44 54 65 77 90]
//累差並保存:累差是相鄰兩個數做差,連著減有點不合理
print(np.diff(a))//[[1 1 1]
[1 1 1]
[1 1 1]] 維度和原矩陣一致
//排序
printf(np.sort(a))//因為原來就是有序的,所以和原來的矩陣一樣
//矩陣的轉置
np.transpose(a)
//原來的a是
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
//轉置之後是
[[ 2 6 10]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]]
//矩陣的修剪
print(np.clip(a,5,9)) //讓小於5的數都等於5,大於9的數都等於9,這樣就能保留5-9之間的數了
[[5 5 5 5]
[6 7 8 9]
[9 9 9 9]]


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved