python numpy基礎

基本類型

import numpy
#向量
vector=numpy.array([5,10,15,20])
vector==10
#矩陣
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
matrix==25

類型轉化

astype函數
dtype函數

vector1=numpy.array(["1","2","3"])
print(vector1.dtype)
print (vector1)
#字符轉爲float
vecotor1=vector1.astype(float)
print (vecotor1.dtype)
print (vecotor1)

矩陣求和

matrix=numpy.array([[5,10,15],
                    [20,25,30],
                    [35,40,45]])
print(matrix.sum(axis=1))#按行求和
print(matrix.sum(axis=0))#按列求和

數組與矩陣

arange函數
reshape函數

import numpy as np
print(np.arange(15))
a=np.arange(15).reshape(3,5)

#shape 函數返回矩陣的大小
a.shape#(3,5)
#ndim 函數返回矩陣的維度
a.ndim#2

a.size#多少個元素
a.dtype.name#類型

特殊矩陣

np.zeros((3,4))#構造全0矩陣
np.ones((2,3,4),dtype=np.int32)#全1矩陣,int 默認float

np.arange(10,30,5)#10,15,20,25(初始值,結束值,間隔)
np.random.random(2,3)#隨機生成矩陣,用於初始化

from numpy import pi
np.linspace(0,2*pi,100)#(初始值,間隔,個數)

矩陣運算

#矩陣相乘
A=np.array([[1,1],[0,1]])
B=np.array([[2,0],[3,4]])
print(A*B)
print(A.dot(B))
print(np.dot(A,B))
#矩陣求逆
#需要先轉化爲矩陣
A=mat(A)
A.I

矩陣變形

import numpy as np
a=np.floor(10*np.random.random((3,4)))
a.ravel()#矩陣變成向量
a.reshape(6,2)#向量改變維度,array用reshape
a.T#轉置

矩陣拼接與切分

a=np.floor(10*np.random.random((2,2)))
b=np.floor(10*np.random.random((2,2)))
np.vstack((a,b))#向下拼接
np.hstack((a,b))#向右拼接
#

#切分
a=np.floor(10*np.random.random((2,12)))
np.vsplit(a,2)
np.hsplit(a,3)#行方向平均切分
np.hsplit(a,(3,4))#指定3和4列後面切分
#

矩陣複製

a=np.arrange(12)
b=a
b is a#只是名字不同,換了一個名字 
b.shape=(3,4)
a.shape
#

#賦值操作,相同改變
c=a.view()
c is a 
c.shape=2,6
c[0,4]=1234
a.shape
a
#

#複製操作,不同改變
d=a.copy()
d is a 
d[0,0]=999
a
#

#只用copy纔是真正意義上的複製

tile整體複製

#tile複製
a=np.arange(0,40,10)
b=np.tile(a,(4,3))#整體四行三列複製
#

排序

argsort
sort
sorted

#排序,默認爲從小到大
a=np.array([[4,3,5],[1,2,1]])
b=np.sort(a,axis=1)
a.sort(axis=1)
a=np.array([4,3,1,2])
j=np.argsort(a)#返回索引
#
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章