Numpy簡單使用

Numpy簡單使用

Numpy 屬性

array = np.array([[1,2,3],[4,5,6]])   #列表轉化爲矩陣
print(array)
print("number of dim:", array.ndim)   #維度
print("shape"+str(array.shape))       #行數和列數
print("size:", array.size)            #總的數目

array : 創建數組
dtype : 指定數據類型
zeros : 創建數據全爲0
ones : 創建數組全爲1
empty : 創建數據接近0
arange : 按指定範圍創建數據
linspace: 創建線段

創建array

#創建數組
a = np.array([2,23,4])
print(a)
print("shape:", a.shape)


#指定數據類型
a = np.array([2,23,4],dtype=np.int)
print(a)
print(a.dtype)
a = np.array([1,2,3],dtype=np.int32)
print(a)
print(a.dtype)
a = np.array([1,2,4],dtype=np.float64)
print(a)
print(a.dtype)

#指定特定數據
a = np.array([[1,2,3],[4,5,6]])
print(a)
a = np.zeros([2,3],dtype=np.int32)
b = np.ones([2,3])
c = np.ones(3,dtype=np.int32)
d = np.empty((3,4))   #創建全空數組
e = np.arange(1,20,2,dtype=np.float)
f = np.linspace(1,20,5,True,False,dtype=np.int)
g = np.zeros([2,3]).reshape([3,2])
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
print(g)

numpy的基礎運算1

a = np.array([10,20,30,40])
b = np.arange(4)
print("a:",a)
print("b:",b)
c = a + b
print("c:",c)
c = a*b
print("c:",c)
c = a**2
print("c:",c)
c = 10*np.sin(a)
print("c:",c)
print("b<3",b<3)
print("a*b",np.dot(a,b.transpose()))

a = np.random.random([2,4])
print("a",a)
print("a",a.sum())
print("sum_0:",np.sum(a,0))
print("sum_1:",np.sum(a,1))
print("a_min",a.min())
print("a_min_0",np.min(a,0))
print("a_min_1",np.min(a,1))

numpy基礎運算2

A = np.arange(2,14).reshape((3,4))
print("A:",A)
print("A.argmin:",np.argmin(A))
print("A.argmax:",np.argmax(A))
print("A.mean(A):",np.mean(A))
print("A.median:",np.median(A))
print("A.cumsum:",np.cumsum(A))  #累加函數
print("A.diff:",np.diff(A))   #後一項與前一項差
print("A.nonzero:",np.nonzero(A))   #不爲0的元素的索引
A = np.arange(14,2,-1).reshape((3,4))
print("A:",A)
print("A.sort:",np.sort(A))   #從小到大排序
print("A.transpose:",np.transpose(A))    #求矩陣的轉置
print("A.T:",A.T)   #求矩陣的轉置
print("A.clip(5,9):",np.clip(A,5,9))  #限幅度,大於9的等於9,小於5的等於5

numpy索引

一維索引

A = np.arange(3,15)
print("A:",A)
print("A[3]:",A[3])

二維索引

A = A.reshape((3,4))
print("A:",A)
print("A[1][1]:",A[1][1])
print("A:",A[1,1])
print("A[1,:]",A[1,:])

for row in A:
    print(row)

for column in A.T:
    print(column)

print("A.flatten:",A.flatten())   #將矩陣平鋪,轉化成一維數組
for item in A.flat:    #依次訪問元素
    print(item)

Numpy array合併

A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.stack((A,B))     #上下合併
print("C:",C)

C = np.hstack((A,B))    #左右合併
print("C:",C)

print(A.shape)
print(A[np.newaxis,:].shape)   #新建新的維度

C = np.concatenate((A,B,B,A),axis = 0)   #多個array合併,橫向和縱向都可以
print("C:",C)

Numpy array分割

A = np.arange(0,12).reshape((3,4))
print(np.split(A,2,axis=1))  #縱向分割, 2爲分成2份,等量分割
print(np.split(A,3,0))   #橫向分割,3爲分成3份,等量分割
print(np.array_split(A,3,1))   #不等量分割
print(np.vsplit(A,3))   #縱向分割,等量3份
print(np.hsplit(A,2))   #橫向分割,等量2份

= 的賦值方式帶有關聯性,相當於淺賦值,copy()的賦值方式沒有關聯性

a = np.arange(4)
#a = [0,1,2,3]

b = a
c = a
d = a
e = a.copy()
#改變a的值,b、c、d的值也會改變
a[0] = 11
print("d:",d)
print("e:",e)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章