1.導入默認為 import numpy as np
使用np.array()括號內是矩陣的相關信息
最簡單的例子:
ay=np.array([[1,2,3],
[4,5,6]])
這是一個二維的矩陣,相當於c語言裡的二維數組,一般來說,要從外往裡數一下方括號的數量,比如從左數的話數的就是左方括號的數量,從第一個開始,到第一個挨著數字的左方括號結束,有幾個就是幾維,在numpy的文檔裡,你數了幾個左方括號就代表幾個軸,比如數了倆,就是x和y軸,再多一個 就是xyz三個軸,再多的話我也不知道是啥軸,只需要知道維度上升了即可。
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((行數,列數))
//加法
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中的每一個數取整
//比較大小,返回布爾類型
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 ]
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]]