Numpy(Numerical Python 的簡(jiǎn)稱)時(shí)高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包,提供了矩陣運(yùn)算的功能闷哆。
相關(guān)鏈接Numpy官方推薦教程
Numpy具有以下幾點(diǎn)能力:
- ndarry——一個(gè)具有向量算數(shù)運(yùn)算和復(fù)雜廣播能力的多位數(shù)組對(duì)象
- 用于對(duì)數(shù)組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)
- 用于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具
- 非常有用的線性代數(shù)稚茅,傅立葉變換和隨機(jī)數(shù)操作
- 用于繼承c/c++和Fortran代碼的工具
創(chuàng)建Numpy數(shù)組
使用numpy.array()可直接導(dǎo)入數(shù)組或矩陣
import numpy as np
a = np.array([1,2,3,4,5])
b = np.array([[1,1,1],[2,2,2],[3,3,3]])
print(a)
print(b)
//結(jié)果
[1 2 3 4 5]
[[1 1 1]
[2 2 2]
[3 3 3]]
獲取與創(chuàng)建數(shù)組時(shí)設(shè)置緯度
reshape將當(dāng)前一位數(shù)組設(shè)置成對(duì)應(yīng)的m*n的矩陣
a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
a = a.reshape(3,5)
print(a)
//結(jié)果
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]]
通過(guò)a.shape()可以查看當(dāng)前矩陣的緯度靖避,返回值是一個(gè)元組
tu = a.shape
print(tu)
// 結(jié)果
(3, 5)
數(shù)組索引哩俭、切片绞蹦、比較
matrix = np.array([[1,2,3],[20,30,40]])
*索引與正常二位數(shù)組相同*
print(matrix[0,1])
matrix = np.array([
[5,10,15],
[20,25,30],
[35,40,45]])
*切片與正常二維數(shù)組相同*
print(matrix[:,1])
print(matrix[:,0:2])
print(matrix[1:3,:])
print(matrix[1:3,0:2])
*結(jié)果*
2
[10 25 40]
[[ 5 10]
[20 25]
[35 40]]
[[20 25 30]
[35 40 45]]
[[20 25]
[35 40]]
*比較返回的是每一個(gè)數(shù)組元素比較之后的值,返回的也是一個(gè)數(shù)組终畅,都是布爾類型*
z = (matrix[1,:]==25)
print(z)
*結(jié)果*
[False True False]
數(shù)組值的替換
值的替換在自然語(yǔ)言處理中很有用籍胯,例如我們?cè)谔幚硪粋€(gè)文本數(shù)組的時(shí)候,有幾個(gè)數(shù)據(jù)元素是空离福,那么我們可以結(jié)合判斷語(yǔ)句來(lái)獲得是否為空的一個(gè)布爾數(shù)組杖狼,然后利用這個(gè)布爾數(shù)組進(jìn)行元素替換
matrix=np.array([['1','2',''],['3','4','5'],['5','6','']])
m = (matrix[:,2] == '')
matrix[m,2]='0'
print(matrix)
*這里判斷第三列中值為空的數(shù)據(jù),返回一個(gè)bool類型的數(shù)組
妖爷,再將bool類型的數(shù)組當(dāng)成是數(shù)組的下標(biāo)進(jìn)行替換數(shù)據(jù)就可以了蝶涩,
這里只會(huì)替換值為真的時(shí)候的值,所以完全不必?fù)?dān)心替換不必要的數(shù)據(jù)*
數(shù)據(jù)類型轉(zhuǎn)換
初始化時(shí)設(shè)置數(shù)據(jù)類型用dtype
astype用于更改數(shù)據(jù)類型
vector = np.array(['1','2','3'])
vector = vector.astype(float)
print(vector)
*結(jié)果*
[1. 2. 3.]
統(tǒng)計(jì)計(jì)算方法
sum
mean
max
**********
vector.sum()
vector.mean()
vector.max()
**********
6.0 和
2.0 平均
3.0 最大
************
對(duì)于矩陣需要設(shè)置行或者列
matrix = np.array([[20,10,15],[30,20,14],[30,29,43]])
matrix.sum(axis=1)//每行相加求和
*結(jié)果*
array([ 45, 64, 102])
matrix.sum(axis=0)//每列相加求和
*結(jié)果*
array([80, 59, 72])
如果你還想了解更多,我想這個(gè)入門文檔應(yīng)該足夠了