python中np模塊的應用?
numpy
NumPy(Numerical Python) 是 Python 的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。Nupmy可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。據說NumPy將Python相當于變成一種免費的更強大的MatLab系統。NumPy 是一個運行速度非常快的數學庫,主要用于數組計算,包含:一個強大的 N 維數組對象 ndarray廣播功能函數整合 C/C++/Fortran 代碼的工具線性代數、傅里葉變換、隨機數生成等功能ndarray對象
NumPy 最重要的一個對象是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,可以使用基于 0 的索引訪問集合中的項目。ndarray 對象是用于存放同類型元素的多維數組。ndarray中的每個元素在內存中使用相同大小的塊。 ndarray中的每個元素是數據類型對象的對象(稱為 dtype)numpy.array( object , dtype = None , ndmin = 0 ,copy = True , order = None , subok = False )一般只有 object 、dtype和 ndmin 參數常用,其他參數不常用import numpy
a=numpy.array([1,2,3]) #一維
b=numpy.array([[1,2,3],[4,5,6]]) #二維
c=numpy.array([1,2,3],dtype=complex) #元素類型為復數
d=numpy.array([1,2,3],ndmin=2) #二維
print(a,type(a))
print(b,type(b))
print(c,type(c))
print(d,type(d))
####################################
[1 2 3] <class 'numpy.ndarray'>
[[1 2 3]
[4 5 6]] <class 'numpy.ndarray'>
[1.+0.j 2.+0.j 3.+0.j] <class 'numpy.ndarray'
[[1 2 3]] <class 'numpy.ndarray'>
Numpy數組屬性NumPy 數組的維數稱為秩(rank),一維數組的秩為 1,二維數組的秩為 2,以此類推。在 NumPy中,每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數組相當于是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。所以一維數組就是 NumPy 中的軸(axis),第一個軸相當于是底層數組,第二個軸是底層數組里的數組。而軸的數量——秩,就是數組的維數。很多時候可以聲明 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。ndarray 對象屬性有:常見的屬性有下面幾種 :ndarray.shape : 這一數組屬性返回一個包含數組緯度的元組,它也可以用于調整數組大小import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape) #打印shape屬性
a.shape=(3,2) #修改shape屬性
print(a)
#######################################
(2, 3)
[[1 2]
[3 4]
[5 6]]
ndarray.ndim: 這一數組屬性返回數組的維數import numpy as npa=np.arange(24) #np.arange返回0-23的列表類型的數據
print(a.ndim)
b=a.reshape(2,3,4)
print(b)
print(b.ndim)
############################
1
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
3
ndarray.itemsize : 這一數組屬性返回數組中每個元素的字節單位長度import numpy as npa=np.array([1,2,3]) #默認是四個字節
print(a.itemsize)
#########################################
4
numpy.mat()函數的用法該函數用來創建矩陣import numpy as np
#將列表轉為矩陣
a=[7,8,9]
b=np.mat(a)
print(b)
print("#"*10)
#創建一行的矩陣
m=np.mat([1,2,3])
print(m)
print("打印出第一行的第三個值:",m[0,2]) #取第一行的第三個值
print("#"*10)
x=np.mat([[3,2,1],[6,5,4]])
print(x)
print("打印出矩陣的第二行:",x[1])
print("打印出矩陣的第二行:",x[1,:])
print("打印出矩陣的行列數:",x.shape) #獲得矩陣的行列數
print("打印出矩陣的行數 :",x.shape[0]) #獲得矩陣的行數
print("打印出矩陣的列數 :",x.shape[1]) #獲得矩陣的列數
x.sort() #對矩陣的每一行進行排序
print("對矩陣的每一行進行排序:")
print(x)
print("#"*10)
numpy.zeros()函數的用法該函數用于返回給定形狀和類型的新數組。返回的數據類型為 numpy.ndarray,具有給定形狀,類型和順序的0的數組。參數:shape:int 或 int 的元組。新陣列的形狀,例如:(2,3)或2。dtype:數據類型,可選。、例如numpy.int8。默認是numpy.float64order:{'C','F'},可選,默認:'C' 。是否在內容中以行(C)或列(F)順序存儲多維數據。import numpy as np
a=np.zeros(5)
print(a,type(a))
b=np.zeros([1,2],dtype='int8')
print(b)
c=np.zeros([1,2,3],dtype='int8')
print(c)