Python科學計算庫NumPy基礎操作
NumPy是什麼?能吃嗎?好吃嗎?
。。。吃貨總是把問題想的這麼簡單。。。
來看看NumPy在官網上是怎麼定義自己的吧。。
NumPy is the fundamental package for scientific computing with Python. It contains among other things:
1.a powerful N-dimensional array object
2.sophisticated (broadcasting) functions
3.tools for integrating C/C++ and Fortran code
4.useful linear algebra, Fourier transform, and random number capabilities
Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.
看到了把,翻譯成中文就是在資料處理方面屌得很。。
下面來看看具體的基本操作吧:
1.匯入NumpPy這個庫(安裝的話,在之前的blog中已經介紹過啦),並將其簡寫方便使用:
import numpy as np
array00 = np.array([[1,2,3],[4,5,6]])
print(array00)
3.檢視矩陣的維數,矩陣的形式,矩陣中元素的個數
print 'number of dim:',array00.ndim
print 'shape:',array00.shape
print 'size',array00.size
4.設定輸出型別
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
5.初始化N*M的元素為0的矩陣
array01 = np.array([1,2,3],dtype=np.int)
print(array01.dtype)
6.初始化N*M的元素為1的矩陣
array03 = np.ones((4,5))
print array03
7.初始化N*M的元素為空的矩陣
array04 = np.empty((4,5))
print array04
8.生成一個1到10步長為2的矩陣
array05 = np.arange(1,10,2)
print array05
9.生成一個具有12個元素,shape為N*M的矩陣
array06 = np.arange(12).reshape((3,4))
print array06
10.生成一個1到20 被cut為12段的一個線性矩陣
array07 = np.linspace(1,20,12)
print array07
print
array07 = np.linspace(1,20,12).reshape((3,4))
print array07
11.關於矩陣的一些處理
#初始化兩個1*4矩陣
array08 = np.array([4,5,6,7])
array09 = np.arange(4)
#矩陣減法
print array08,array09
array10 = array08 - array09
print array10
#矩陣加法
print array08,array09
array10 = array08 + array09
print array10
#矩陣元素平方
print array08
array10 = array08 ** 2
print array10
#矩陣求sin
print array08
array10 = np.sin(array08)
print array10
#矩陣元素是否大於5
print array08
array10 = array08 > 5
print array10
#矩陣元素是否等於5
print array08
array10 = array08 == 5
print array10
12.矩陣中元素相乘和矩陣乘法
#初始化兩個2*2矩陣
array11 = np.array([[1,1],[0,1]])
array12 = np.arange(4).reshape((2,2))
print array11
print
print array12
print
#矩陣中每個元素相乘
array13 = array11 * array12
#矩陣乘法
array14 = np.dot(array11,array12)
array14 = array11.dot(array12)
print array13
print
print array14
13.隨機生成矩陣
array15 = np.random.random((4,4))
print array15
print
array15_1 = np.random.randint(1,100,10)
print array15_1
14.關於矩陣的一個些操作
#隨機生成矩陣
array15 = np.random.random((4,4))
print array15
array15_1 = np.random.randint(1,100,10)
print array15_1
#方差
print np.var(array15_1)
print
#矩陣求和
print np.sum(array15)
#求出矩陣中最小元素
print np.min(array15)
#求出矩陣中最大元素
print np.max(array15)
#矩陣行求和
print np.sum(array15,axis=0)
#求出每行最小元素
print np.min(array15,axis=0)
#求出每行最大元素
print np.max(array15,axis=0)
print
#列求和
print np.sum(array15,axis=1)
#求出每列最小元素
print np.min(array15,axis=1)
#求出每列最大元素
print np.max(array15,axis=1)
15.關於矩陣索引的一些操作和其他操作
array16 = np.arange(1,13).reshape((3,4))
print array16
#求矩陣最小值索引
print np.argmin(array16)
#求矩陣最大值索引
print np.argmax(array16)
#求矩陣平均值
print np.mean(array16)
print np.average(array16)
#求矩陣行平均值
print np.mean(array16,axis=0)
#求矩陣列平均值
print np.mean(array16,axis=1)
#求矩陣中位數
print np.median(array16)
#矩陣元素累加
print np.cumsum(array16)
#矩陣相鄰元素累差
print np.diff(array16)
16.元素的非零判別
array17 = np.array([[1,2,3],[3,0,4],[0,2,2]])
print np.nonzero(array17)
17.矩陣排序
array18 = np.array([[4,2,3],[3,0,4],[0,5,2]])
#矩陣行排序
print np.sort(array18)
18.矩陣轉置以及矩陣內元素的範圍控制
array19 = np.arange(20).reshape(4,5)
print array19
print
#矩陣轉置
print array19.T
print np.transpose(array19)
print
#矩陣中小於4用4替代,大於8用8替代
print np.clip(array19,4,8)
19.對矩陣的一些控制輸出
array21 = np.arange(3,15).reshape(3,4)
print array21
print
print (array21[2])
print
print array21[1][1]
print array21[1,1]
print array21[1,1:]
print
#列印每一行
for row in array21:
print row
print
#列印每一列
for column in array21.T:
print column
print
#摺疊成一個一維陣列
print (array21.flatten())
print
#列印陣列中的每一個元素
for item in array21.flat:
print item
20.矩陣的分割
array22 = np.arange(16).reshape(4,4)
print array22
print
#每兩行分割
print np.split(array22,2,axis=0)
print
#每兩列分割
print np.split(array22,2,axis=1)
print
#不等分割
print np.array_split(array22,3,axis=1)
print
#橫向分割
print np.vsplit(array22,2)
print
#縱向分割
print np.hsplit(array22,2)
21.矩陣拷貝
array23 = np.arange(4)
array24 = array23
print array23
print array24
#淺拷貝
print array23 is array24
array23[2] = 14
print
print array23
print array24
print
#深拷貝
array25 = array23.copy()
print array23
print array25
print array23 is array25
array23[2] = 99
print
print array23
print array25
22.矩陣合併
array26 = np.array([1,1,1])
array27 = np.array([2,2,2])
#橫向合併
print np.vstack((array26,array27))
print
#縱向合併
print np.hstack((array26,array27))
列表變矩陣
print array26[np.newaxis,:]
print array26[np.newaxis,:].shape
print
print array26[:,np.newaxis]
print array26[:,np.newaxis].shape
array28 = array26[:,np.newaxis]
array29 = array27[:,np.newaxis]
print
print np.vstack((array28,array29))
print
print np.hstack((array28,array29))
#多矩陣合併
print
print np.concatenate((array28,array29,array29,array28),axis=0)
print
print np.concatenate((array28,array29,array29,array28),axis=1)
好啦就到這裡吧,感覺是不是很像matlab,NumPy對矩陣的處理確實很強大!
相關文章
- NumPy科學計算庫
- Python科學計算庫Numpy陣列的初始化和基本操作Python陣列
- [python][科學計算][numpy]使用指南Python
- Python科學計算 - Numpy快速入門Python
- Python科學計算之Numpy陣列生成與運算Python陣列
- python numpy基礎 陣列和向量計算Python陣列
- 【Python資料科學】之NumpyPython資料科學
- Python Numpy基礎教程Python
- 收集的Java科學計算庫Java
- NumPy 基礎 (二) - 陣列運算陣列
- numpy 基礎入門 - 30分鐘學會numpy
- Numpy基礎
- [python][科學計算][pandas]使用指南Python
- Python科學計算——任意波形擬合Python
- Python科學測量與計算庫Pymeasure: 控制你的儀器進行自動測試和科學計算Python
- NumPy 基礎 (三) - 數學函式函式
- Numpy學習(2)numpy向量化、numpy操作
- [python][科學計算][matplotlib]使用指南Python
- python基礎操作Python
- Python必備基礎:這些NumPy的神操作你都掌握了嗎?Python
- 學計算機需要什麼基礎計算機
- 學計算機需要什麼基礎?計算機
- 零基礎如何學習雲端計算?雲端計算學習教程
- Python 設定numpy不以科學計數法儲存和顯示的方法Python
- [Python基礎]字串操作Python字串
- 雲端計算基礎
- 計算機基礎計算機
- Python常用庫NumpyPython
- Data Science | Numpy基礎(一)
- Data Science | Numpy基礎(二)
- 什麼叫做雲端計算?雲端計算基礎學習路線
- 用Python學習統計學基礎-4Python
- 用Python學習統計學基礎-3Python
- Python為何在科學計算領域打敗Fortran? - cerfacsPython
- 基於PYTHON的科學占卜Python
- python基礎(三)——操作列表Python
- Python基礎——檔案操作Python
- python之Numpy 排序搜尋計數及集合操作Python排序