最全的Numpy基礎運算

關注微信公衆號:機器知心媛,更多幹貨等着你

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) #元素個數

a=np.array([2,23,4])
print(a)

a=np.array([2,23,4],dtype=np.int)
print(a.dtype)

a=np.array([2,23,4],dtype=np.int32)
print(a.dtype)


a=np.array([2,23,4],dtype=np.float)
print(a.dtype)
#float64

a=np.array([[2,23,4],[2,32,4]])
print(a)
#[[ 2 23  4]
# [ 2 32  4]]


a=np.zeros((3,4))
print(a)
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

a=np.ones((3,4),dtype=np.int)
print(a)

# [[1 1 1 1]
#  [1 1 1 1]
#  [1 1 1 1]]

a=np.empty((3,4))
print(a)

# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

#創建連續數組
a=np.arange(10,20,2)
print(a)
#[10 12 14 16 18]


import numpy as np
a=np.array([10,20,30,40]) #[10 20 30 40]
b=np.arange(4) #[0 1 2 3]
c=a-b
print(c) #[10 19 28 37]
c=a+b
print(c) #[10 21 32 43]
c=a*b
print(c) #[  0  20  60 120]
c=b**2
print(c) #[0 1 4 9]
c=10*np.sin(a)
print(c) #[-5.44021111  9.12945251 -9.88031624  7.4511316 ]
print(b<3) #[ True  True  True False]

e=np.array([[1,1],[0,1]])
f=np.arange(4).reshape((2,2))
print(e)
# [[1 1]
#  [0 1]]
print(f)
# [[0 1]
#  [2 3]]

c_dot=np.dot(e,f) #矩陣乘法
print(c_dot)
# [[2 4]
#  [2 3]]

#另一種表示方法
c_dot_2=e.dot(f)
print(c_dot_2)

r_a=np.random.random((2,4)) #隨機生成一個矩陣值
print(r_a)
# [[0.42132264 0.22771785 0.44466418 0.11913662]
#  [0.71617876 0.48510079 0.50271546 0.88637848]]

a_sum=np.sum(r_a)
print(a_sum) #2.9857142667039276
a_min=np.min(r_a)
print(a_min) #0.0009651795627688697
a_max=np.max(r_a)
print(a_max) #0.6642412178791747

#對行或者列進行運算,設置參數axis=0時,以列爲單位
#axis=1時,以行爲單位
print("sum=",np.sum(r_a,axis=1))
#sum= [1.92376688 1.9235414 ]
print("min=",np.min(r_a,axis=0))
#min= [0.50175284 0.56405502 0.04557037 0.295479  ]
print("max=",np.max(r_a,axis=1))
#max= [0.72859575 0.56405502]

import numpy as np
A=np.arange(2,14).reshape((3,4))
print(A)
# [[ 2  3  4  5]
#  [ 6  7  8  9]
#  [10 11 12 13]]
print(np.argmin(A)) #索引0
print(np.argmax(A)) #11

print(np.mean(A)) #計算均值 7.5
print(A.mean()) #等同於上面一種方法
print(np.average(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]]

B=np.arange(14,2,-1).reshape((3,4))
print(B)
# [[14 13 12 11]
#  [10  9  8  7]
#  [ 6  5  4  3]]
print("B[2]=",B[2])
#B[2]= [6 5 4 3]
print("B[1][1]=",B[1][1])
#B[1][1]= 9
print("B[1,1:3]",B[1,1:3])
#B[1,1:3] [9 8]
print(np.sort(B)) #對每一行從小打大排序
# [[11 12 13 14]
#  [ 7  8  9 10]
#  [ 3  4  5  6]]

#矩陣的轉置
print(np.transpose(B))
print(B.T)
# [[14 10  6]
#  [13  9  5]
#  [12  8  4]
#  [11  7  3]]

print(np.clip(B,5,9))
# [[9 9 9 9]
#  [9 9 8 7]
#  [6 5 5 5]]
#clip(array,min,max)是將比最小值小或者比最大值大的值轉換爲最小值或最大值

X=np.arange(3,15).reshape((3,4))
print(X.flatten()) #展開成一行
#[ 3  4  5  6  7  8  9 10 11 12 13 14]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章