Python數(shù)據(jù)處理 | Numpy知識筆記

寫在最前的話

  • Numpy是數(shù)據(jù)科學計算的基礎(chǔ)模塊,用于數(shù)值計算。

  • Numpy基于數(shù)組計算,比Python自帶的數(shù)據(jù)結(jié)構(gòu)如列表等要速度快很多,如[3,4,5]+1>>[4,5,6],這是列表做不到的。

  • Numpy擁有很多高級函數(shù),可以對數(shù)組、列表等數(shù)據(jù)結(jié)構(gòu)進行高效的處理。

導入數(shù)據(jù)庫:import numpy as np

1、Numpy基礎(chǔ)知識

1.1、數(shù)組創(chuàng)建

函數(shù) 用法 舉例
np.array() 自定義創(chuàng)建數(shù)組 np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]],dtype='int')
np.arange(n1,n2,step) 創(chuàng)建給定區(qū)間內(nèi)步長相等的一維數(shù)組 np.arange(1,10,0.5)
np.linspace(n1,n2, num,endpoint=true) 創(chuàng)建給定區(qū)間和元素數(shù)量的等差一維數(shù)組 np.linspace(0,10,11)
np.logspace(n1,n2, num,endpoint=true,base=10) 創(chuàng)建以對數(shù)刻度均勻間隔的一維數(shù)組 np.logspace(0,10,11,base=2)
np.zeros(shape,dtype) 創(chuàng)建給定形狀和類型的全0數(shù)組,類似的還有np.ones、np.full np.zeros([2,3],dtype='int')
np.zeros_like(a,dtype) 創(chuàng)建與a形狀相同的全0數(shù)組,類似的還有np.ones_like、np.full_like a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]],dtype='int')>>np.zeros_like(a,dtype='int')
np.eye(num) 創(chuàng)建給定列數(shù)的二維單位對角矩陣,對角線上是1,其他地方是0。 np.eye(6)
np.diag(a) 創(chuàng)建a的二維對角矩陣,對角線上是a的元素,其他地方是0。 np.diag([2,3,4])

1.2、數(shù)組屬性

屬性 用法 舉例
ndarray.ndim 查看數(shù)組的維度數(shù) np.array([[1,2,3],[4,5,6]]).ndim
ndarray.shape 查看數(shù)組的形狀 np.array([[1,2,3],[4,5,6]]).shape
ndarray.size 查看數(shù)組的元素數(shù)量 np.array([[1,2,3],[4,5,6]]).size
ndarray.dtype 查看數(shù)組的數(shù)據(jù)類型 np.array([[1,2,3],[4,5,6]]).dtype
ndarray.itemsize 查看數(shù)組每個元素的字節(jié)大小 np.array([[1,2,3],[4,5,6]]).itemsize

注:<u>“=”和“.copy”的區(qū)別</u>

拷貝方式 說明 舉例
dnarray2=dnarray1 淺拷貝,視圖上修改,原數(shù)據(jù)也會根據(jù)改變 dnarray1=np.array([1,2,4])>>dnarray2=dnarray1 >>dnarray2[0]=3>>dnarray1
dnarray2=dnarray1.copy() 深拷貝,新數(shù)組修改,原數(shù)據(jù)不會改變 dnarray1=np.array([1,2,4])>>dnarray2=dnarray1.copy()>>dnarray2[0]=3>>dnarray1

1.3、索引和切片

1.3.1、連續(xù)索引

1.3.1.1、一維數(shù)組索引和切片

  • 一維數(shù)組索引和列表類似,但處理速度更快
索引方式 用法 舉例
ndarray[index] 索引指定元素 np.array([1,2,4])[0]
ndarray[index1:index2] 索引指定區(qū)間,左閉右開 np.array([1,2,4])[0:2]
ndarray[index1:index2:step] 索引指定間距的區(qū)間,左閉右開 np.array([1,2,4,5,7,8,9,3,10])[0:5:2]
修改方式 用法 舉例
ndarray[index] = 修改指定元素 d=np.array([1,2,4])>>d[0]=3>>d
ndarray[index1:index2]=[n1,n2...] 修改指定區(qū)間 d=np.array([1,2,4])>>d[0:2]=[1,3]>>d
ndarray[index1:index2:step]=[n1,n2...] 修改指定間距的區(qū)間 d=np.array([1,2,4,5,7,8,9,3,10])>>d[0:5:2]=[2,3,6]>>d

1.3.1.2、多維數(shù)組索引和切片

索引方式 用法 舉例
ndarray[axis] 索引指定行數(shù) d=np.arange(0,10,0.5).reshape(4,5)>>d[0]
ndarray[axis1,axis2,...] 索引指定元素,等同于ndarray[axis1][axis2][...] d=np.arange(0,10,0.5).reshape(4,5)>>d[0,0]
ndarray[ : , : , : :step] 索引指定區(qū)間 d=np.arange(0,10,0.5).reshape(4,5)>>d[:,2:4]
ndarray[criteria] 對數(shù)組進行條件索引,輸出一維數(shù)組結(jié)果 d=np.arange(0,10,0.5).reshape(4,5)>>d[(d>=3.5) & (d<=7)]

1.3.2、花式索引

花式大法 說明 舉例
dnarray[[ , ,...]] 索引并排列第一維的指定行數(shù) d=np.arange(0,10,0.5).reshape(4,5)>>d[[1,3]]
dnarray[[ , ],[ , ],...] 索引并排列指定維的指定行數(shù)或元素 d=np.arange(0,10,0.5).reshape(4,5)>>d[[1,3],[0,4]]
dnarray[np.ix_([ , ],[ , ],...)] np.ix_表示交叉的元素數(shù)組 d=np.arange(0,10,0.5).reshape(4,5)>>d[np.ix_([1,3],[0,4])]#等同于d[[1,3]][:,[0,4]]

2、Numpy高級用法

2.1、數(shù)組形狀改變

2.1.1、普通形狀改變

函數(shù) 用法 舉例
ndarray.reshape( , ,...) 展示數(shù)組形狀的改變,只返回視圖,不改變原數(shù)組 d=np.arange(0,10,0.5).reshape(4,5)>>d2=d.reshape(2,10)>>d2
ndarray.resize( , ,...) 改變數(shù)組的形狀 d=np.arange(0,10,0.5).reshape(4,5)>>d.resize(2,10)>>d
ndarray.shape=( , ,...) 改變數(shù)組的形狀 d=np.arange(0,10,0.5).reshape(4,5)>>d.shape=(2,10)>>d
ndarray.ravel(order='c') /ndarray.reshape(-1) 將ndarray數(shù)組展平為一維數(shù)組,order='c'(默認)則橫向展平,order='F'則豎向展平,在函數(shù)基礎(chǔ)上改變元素,原數(shù)組視圖和結(jié)果均發(fā)生改變。 d=np.arange(0,10,0.5).reshape(4,5)>>d.ravel()
ndarray.flatten(order='c') 和ndarray.ravel類似,不過僅為過程視圖,在函數(shù)基礎(chǔ)上改變元素,原數(shù)組結(jié)果不改變。 d=np.arange(0,10,0.5).reshape(4,5)>>d.flatten()

<u>注:n維數(shù)組形狀進行變化,若n-1維都已知,那么Python會自動指定未知維度。如:d.shape=(2,2,5)等同于d.shape=(2,2,-1)。</u>

2.1.2、花式形狀改變

函數(shù) 用法 舉例
dnarray[ : ,np.newaxis] 一維數(shù)組變二維數(shù)組 d2=np.arange(10)>>d2[np.newaxis,:].shape
np.hstack(( , ,...)) 按水平方向合并,列數(shù)必須相同 d1=np.array([1,2,3])>>d2=np.array([3,4,6])>>np.hstack((d1,d2))
np.vstack(( , ,...)) 按垂直方向合并,行數(shù)必須相同 d1=np.array([1,2,3])>>d2=np.array([3,4,6])>>np.vstack((d1,d2))
np.concatenate(( , ,...),axis= ) 按指定軸合并,axis=0(默認)沿垂直方向合并,axis=1沿水平方向合并。 d1=np.array([[1,2,3]])>>d2=np.array([[3,4,6,4]])>>np.concatenate((d1,d2),axis=1)
np.tile(dnarray,( , ,...)) 通過重復dnarray數(shù)組的對應軸創(chuàng)建新的數(shù)組 d1=np.array([[1,2],[3,4]])>>np.tile(d1,(2,3))

2.2、ufunc廣播機制

  • ufunc通用函數(shù),指能夠?qū)rray中所有元素進行操作的函數(shù)。
  • Broadcasting指對不同形狀的array之間進行算術(shù)運算的方式。
  • 不同形狀的數(shù)組運算時,Numpy則會執(zhí)行廣播機制。

2.2.1、廣播運算機制

[圖片上傳失敗...(image-3fd2f3-1582267160478)]

  • 一維數(shù)組:廣播運算時,按照行補齊方式,當行數(shù)不一致時,首先補齊行數(shù),再進行運算。
  • 二維數(shù)組:列或行數(shù)一致時可進行廣播運算,列數(shù)不一致則補齊列數(shù)進行運算;行數(shù)不一致則補齊行數(shù)運算。
  • 多維數(shù)組:情況更復雜,以有基準能補齊為原則進行廣播運算。

2.2.2、通用函數(shù)

2.2.2.1、一元函數(shù)

  • 一元函數(shù)指僅接受一個數(shù)組參數(shù),對數(shù)組的全部元素進行運算。
函數(shù) 用法 舉例 算術(shù)符運算
np.abs()/np.fabs() 計算每個元素的絕對值,abs適用全部數(shù)據(jù)類型,fabs無法適用復數(shù) d1=np.array([-1,2,-3])>>np.abs(d1) --
np.sqrt() 計算每個元素的平方根 d1=np.array([9,4,16])>>np.sqrt(d1) d1=np.array([9,4,16])>>d1**0.5
np.square() 計算每個元素的平方 d1=np.array([3,2,4])>>np.square(d1) d1=np.array([3,2,4])>>**2
np.exp() 計算每個元素以自然常數(shù)e為底的指數(shù)函數(shù) d1=np.array([3,2,4])>>np.exp(d1) --
np.log()/np.log10()/np.log2() 計算每個元素以e為底(默認)、10為底、2為底的對數(shù) d1=np.array([100,1000,10])>>np.log10(d1) --
np.sign() 計算每個元素的符號:1(正),0(0),-1(負) d1=np.array([-3,0,3])>>np.sign(d1) --
np.ceil() /np.floor()/np.round() 向上取整、向下取整、四舍五入 d1=np.array([-3.5,0.7,3.3])>>np.ceil(d1) --
np.isnan() 返回一個布爾數(shù)組,指示每個元素是否是NaN(不是數(shù)字) d1=np.array([-3.5,0.7,np.nan])>>np.isnan(d1) --

<u>注:在判斷函數(shù)后加上.any()/.all()會輸出一個做整體判斷的布爾型數(shù)據(jù)。如np.isnan([-3.5,0.7,np.nan]).all()會輸出False,np.isnan([-3.5,0.7,np.nan]).all()會輸出True。</u>

2.2.2.2、二元函數(shù)

  • 二元函數(shù)指僅接受兩個數(shù)組參數(shù),對數(shù)組的全部元素進行運算。
函數(shù) 用法 舉例 算術(shù)符運算
np.add(ndarray1, ndarray2) 兩個數(shù)組相加 d1=np.array([1,2,3])>>d2=np.array([4,5,6])>>np.add(d1,d2) d1 + d2
np.subtract(ndarray1, ndarray2) 兩個數(shù)組相減 d1=np.array([1,2,3])>>d2=np.array([4,5,6])>>np.subtract(d1,d2) d1-d2
np.multiply(ndarray1, ndarray2) 兩個數(shù)組相乘 d1=np.array([1,2,3])>>d2=np.array([4,5,6])>>np.multiply(d1,d2) d1*d2
np.divide(ndarray1, ndarray2)、np.floor_divide(ndarray1, ndarray2) 兩個數(shù)組相除、整除 d1=np.array([1,2,3])>>d2=np.array([4,5,6])>>np.divide(d2,d1) d2/d1
np.power(ndarray1, ndarray2) ndarray1的每個元素作為dnarray2每個元素的冪進行計算 d1=np.array([1,2,3])>>d2=np.array([4,5,6])>>np.power(d2,d1) d2**d1
np.maximum(ndarray1, ndarray2)、np.fmax(ndarray1, ndarray2) 元素最大值,fmax忽略nan值 d1=np.array([7,2,3])>>d2=np.array([4,5,6])>>np.maximum(d2,d1) --
np.mod(ndarray1, ndarray2) 除法的余數(shù) d1=np.array([7,10,8])>>d2=np.array([4,5,6])>>np.mod(d1,d2) d1%d2
np.greater(ndarray1, ndarray2) 判斷ndarray1的元素是否大于ndarray2,輸出布爾型,類似的函數(shù)還有g(shù)reater_equal、less、not_equal、equal等 d1=np.array([10,8,11])>>d2=np.array([7,9,8])>>np.greater(d1,d2) d1>d2

2.2.2.3、數(shù)組級別函數(shù)

  • 數(shù)組級別的函數(shù)一般是一些統(tǒng)計函數(shù),像聚合類的函數(shù)求和(sum),求平均(mean)等。
函數(shù) 用法 舉例
np.sum(dnarray,axis= ) 計算指定軸上的元素之和,axis=0豎向計算,axis=1水平計算 d1=np.array([[7,10,8],[1,2,3]])>>np.sum(d1,axis=0)
np.mean(dnarray,axis= ) 計算指定軸上的元素平均值,axis=0豎向計算,axis=1水平計算。 d1=np.array([[7,10,8],[1,2,3]])>>np.mean(d1,axis=0)
np.std、np.var 計算標準差、方差 d1=np.array([[7,10,8],[1,2,3]])>>np.std(d1,axis=0)
np.percentile(a,q,axis= ) 沿著指定的軸計算數(shù)據(jù)的第q百分位數(shù),q=50則相當于median函數(shù) d1=np.array([[7,10,8],[1,2,3]])>>np.percentile(d1,[10,50],axis=0)
np.ptp(a,axis= ) 沿著指定的軸計算值的范圍(最大值-最小值),相當于max-min d1=np.array([[7,10,8],[1,2,3]])>>np.ptp(d1,axis=1)

2.2.2.4、集合函數(shù)

函數(shù) 用法 舉例
np.unique(dnarray) 輸出dnarray中的所有元素(剔除重復值)的一維數(shù)組 d1=np.array([[7,2,8,3],[8,2,3,7]])>>np.unique(d1)
np.intersectld(dnarray1,dnarray2) 交集 d2=np.array([4,8,6])>>d3=np.array([7,8,9])>>np.intersect1d(d2,d3)
np.union1d(dnarray1,dnarray2) 并集 d2=np.array([4,8,6])>>d3=np.array([7,8,9])>>np.union1d(d2,d3)
np.in1d(dnarray1,dnarray2) dnarray1的每個元素是否被dnarray2包含,輸出布爾型 d2=np.array([4,8,6])>>d3=np.array([7,9,8])>>np.in1d(d2,d3)
np.setdiff1d(dnarray1,dnarray2) dnarray1中不被dnarray2包含的元素 d2=np.array([4,8,6])>>d3=np.array([7,9,8])>>np.setdiff1d(d2,d3)
np.setxor1d(dnarray1,dnarray2) 差集 d2=np.array([4,8,6])>>d3=np.array([7,9,8])>>np.setxor1d(d2,d3)

2.3、搜索與排序

  • 排序函數(shù):sort函數(shù)和argsort函數(shù)。
  • 搜索函數(shù):agrmax和argmin函數(shù)。
  • 條件復制:np.where可以自定義返回滿足條件的情況,np.extract返回滿足條件的元素值。
功能 函數(shù) 說明 舉例
正向排序 np.sort() axis=-1(默認),沿著最后一個軸排序;axis=None,變成一維數(shù)組進行排序。 d1=np.array([[7,10,8,1],[7,1,2,3]])>>np.sort(d1,axis=None)
反向排序 np.array(sorted( ,reverse= True)) np.sort函數(shù)無reverse參數(shù),用python自帶的sorted函數(shù)轉(zhuǎn)為列表進行排序。 d1=np.array([[7,10,8,1],[7,1,2,3]])>>n=np.array(sorted(np.ravel(d1),reverse= True))
排序索引 np.argsort() 數(shù)組進行正向排序后每個元素對應原數(shù)組的索引位置 d1=np.array([[7,10,8,1],[7,1,2,3]])>>np.argsort(d1,axis=None)
最大索引 np.argmax() 最大值對應的索引位置,axis默認為None;axis=0,豎向比較;axis=1,水平比較 d1=np.array([7,10,8,1])>>np.argmax(d1)
最小索引 np.argmin() 最小值對應的索引位置,axis默認為None。 d1=np.array([7,10,8,1])>>np.argmin(d1)
條件復制 np.where(condition, [x, y]) 根據(jù)條件,True返回x,F(xiàn)alse返回y d1=np.arange(5,17,dtype=int).reshape(4,3)>>np.where(d1>10,'兩位數(shù)','一位數(shù)')
條件復制 np.extract(condition, dnarray) 返回dnarray中條件為True對應元素的一維數(shù)組 d1=np.arange(5,17,dtype=int).reshape(4,3)>>np.extract(np.mod(d1,3)==0,d1).shape

3、Numpy文件讀寫

3.1、文件讀取和儲存

  • 文件讀取:使用genfromtxt函數(shù)和loadtxt函數(shù)讀取txt和csv文件,兩個函數(shù)功能類似,genfromtxt針對的更多是結(jié)構(gòu)化數(shù)據(jù)。
  • 文件存儲:一般存儲為txt或者csv格式,使用savetxt(fname,data,delimiter,fmt)函數(shù)保存路徑、數(shù)據(jù)、分隔符和格式。
  • 特別說明:數(shù)據(jù)分析中不常用numpy讀取數(shù)據(jù),掌握既可。
函數(shù) 用法 舉例
np.genfromtxt(fname,delimiter= ,skip_header= ) 讀取有特定分隔符的文件,并跳過部分行數(shù),類似的函數(shù)有np.loadtxt data=np.genfromtxt(r"c:\data\第二章\123.txt',delimiter=',',skip_header=1)
np.savetxt(fname,data,delimiter,fmt) 存儲文件,指定路徑、數(shù)據(jù)、分隔符及存儲格式(如存儲為有2位小數(shù)的浮點型,則fmt='%.2f') data=np.savetxt(r"c:\data\第二章\1234.txt',data,delimiter=',',fmt='%.3f')

3.2、字符串處理

  • Numpy提供char模塊處理列表的字符串,運用向量化運算方式。
  • char模塊的函數(shù)和python自帶的字符串處理函數(shù)類似,但可以對數(shù)組、列表的所有元素同時運算,操作更簡便、運行更快,如連接、切片、刪除、替換等。
  • 為求簡便,下表函數(shù)以列表數(shù)據(jù)結(jié)構(gòu)進行舉例。
函數(shù) 用法 舉例 PYthon自帶
np.char.add(x1,x2) 連接字符串,x1和x2的形狀必須相同 np.char.add(['中國','武漢'],['加油','加油']) --
np.char.multiply(a,i) 對a中的元素進行i次復制連接 np.char.multiply(['中國','武漢'],3) [i*3 for i in ['中國','武漢']]
np.char.center(a, width,fillchar= ) 以a的元素居中,指定字符串寬度(width),兩邊填充指定的1個字符(fillchar)。 np.char.center(['中國加油','武漢加油'],6,fillchar="?") --
np.char.capitalize(a) a的所有元素首字母大寫 np.char.capitalize(["hello","love"]) [i.capitalize() for i in ["hello","love"]]
np.char.title(a) a的所有字母首字母大寫 char.title(['hello world','hello python']) [i.title() for i in ['hello world','hello python']]
np.char.lower(a)、np.char.upper(a) a的所有元素轉(zhuǎn)小寫、轉(zhuǎn)大寫 np.char.upper(['asde','derf']) [i.upper() for i in ['asde','derf']]
np.char.join(x1,x2) x1的元素和x2的元素挨個連接 np.char.join([':','_'],['hello','world']) --
np.char.replace(a,old,new, count= ) 替換a中所有元素old的部分為new部分,count=None(默認)對元素所有old進行替換,count=num規(guī)定替換的old個數(shù) np.char.replace(['我要好好學數(shù)據(jù)分析,好好學','我要好好學Python,好好學'],'好好學','認真學',count=1) [i.replace('好好學','認真學',1) for i in ['我要好好學數(shù)據(jù)分析,好好學','我要好好學Python,好好學']]
np.char.strip(a,chars= )、np.char.rstrip(a, chars= )、np.char.lstrip(a, chars= ) 刪除前導或后置字符,chars默認為空格。rstrip只刪除后置(從右邊right),lstrip只刪除前導(從左邊left) np.char.strip(["-hello","love-"],'-') --
np.char.split(a,sep= ,maxsplit= ) 以sep分割a中每個元素,maxsplit默認等于None np.char.split(['Mary,Jone,Peter','Alice,Bob,Tom'],sep=',') --
np.char.find(a,sub,start= ,end= ) 找到a每個元素中sub字符串的最低索引,輸出索引數(shù)組,可利用start和end進行元素切片 np.char.find(['asde','deasrf','hdekas','hdehh'],'as')
np.char.count(a, sub, start=0, end=None) 計算a中每個元素包含sub字符串的次數(shù),可利用start和end進行元素切片 np.char.count(['中國武漢','亞洲中國'],'武漢') --
np.char.islower(a) 判斷函數(shù),判斷a中每個元素是否都是小寫,輸出布爾型,類似的還有isalnum、isalpha、isdigit、isupper等 np.char.islower(['love','worlD','EARTH']) --
np.char.startswith(a, prefix, start= , end= )、np.char.endswith(a, suffix, start= , end= ) 判斷函數(shù),判斷a中每個元素是否以prefix開頭/以suffix結(jié)尾,輸出布爾型,可利用start和end進行元素切片 np.char.endswith(['中國武漢','亞洲中國'],'武漢') --

<u>注:如果覺得每次都要寫np.char.很麻煩,可以在一開始使用該模塊寫:from numpy import char,之后調(diào)用函數(shù)寫char.就可以。

4、Numpy統(tǒng)計計算

4.1、隨機數(shù)生成

  • 隨機數(shù)通過np.random函數(shù)生成偽隨機數(shù),代碼每次運行,結(jié)果都不一樣。
  • 為了保持結(jié)果一致,需要使用np.random.seed函數(shù)固定初始化種子。
函數(shù) 用法 舉例
np.random.seed(seed) 制定隨機數(shù)生成器種子,以保證隨機數(shù)函數(shù)運行結(jié)果一致。seed可以隨便定義,無要求。 np.random.seed(1)
np.set_printoptions(precision= ,threshold= ) 設(shè)置numpy的打印格式,precision表示浮點數(shù)輸出的小數(shù)位數(shù),threshold表示摘要輸出時的元素閾值,其他參數(shù)可以輸入help(np.set_printoptions)查詢 np.set_printoptions(precision=2)
np.random.random(size) 生成size形狀的0-1之間的隨機浮點數(shù) np.random.random((2,3))
np.random.rand(d1,d2,...) 生成(d1,d2,...)形狀的0-1之間服從均勻分布的隨機浮點數(shù),和random函數(shù)類似 np.random.rand(2,3)
np.random.randint(low,high,size) 生成[low,high)之間size形狀的隨機整數(shù) np.random.randint(3,18,(2,3))
np.random.uniform(low,high,size) 生成[low,high)之間size形狀的均勻分布隨機浮點數(shù),low默認等于0,high默認等于1 np.random.uniform(3,18,(2,3))
np.random.normal(loc,scale,size) 生成均值為loc,標準差為scale,形狀為size的正態(tài)分布隨機數(shù)。loc默認為0,scale默認為1。 np.random.normal(3,18,(2,3))
np.random.randn(d1,d2,...) 生成均值為0,標準差為1,形狀為(d1,d2,...)的標準正態(tài)分布隨機數(shù)。 np.random.randn(2,3)
np.random.shuffle(a) 對a的所有元素進行隨機重新排序,原數(shù)組a發(fā)生改變。 d=np.array([2,3,4,7,8,10])>>np.random.shuffle(d)>>d
np.random.permutation(a) 對a的所有元素進行隨機重新排序,生成視圖,原數(shù)組a不發(fā)生改變。 d=np.array([2,3,4,7,8,10])>>d1=np.random.permutation(d)>>d1

4.2、線性代數(shù)

函數(shù) 用法 舉例
np.dot(a,b) a和b數(shù)組的點積。a、b若均為一維數(shù)組,dot就是ab各元素相乘后的總和。a、b若均為二維數(shù)組,dot就執(zhí)行矩陣運算(a的行數(shù)必須等于b的列數(shù)) a=np.arange(0,10).reshape(5,2)>>b=np.arange(0,10).reshape(2,5)>>np.dot(a,b)
np.transpose(a) 將a進行矩陣轉(zhuǎn)置,列轉(zhuǎn)成行 a=np.arange(0,10).reshape(5,2)>>np.transpose(a)
np.linalg.inv(a) 求a的逆矩陣 np.linalg.inv([[1,2],[3,4]])
np.diag(a,k= ) 取出a對角線的元素,k=0(默認)取左對角線 np.diag([[1,2],[3,4]])
np.linalg.solve(a,b ) 解一個線性矩陣方程 a=np.array([[39],[34],[36]])>>b=np.random.randint(1,4,(3,3))>>np.set_printoptions(suppress= True)>>np.linalg.solve(b,a)

寫在最后的話

  • 這是本人學習Peter老師的《2020年P(guān)ython數(shù)據(jù)分析師特訓營》課程整理的學習筆記,有需要觀看視頻的小伙伴,B站指路:https://www.bilibili.com/video/av81847305

  • 每個函數(shù)都附有我自己寫的例子,大家可直接復制到編輯器中運行,如有錯誤,歡迎指正,我及時更改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,061評論 0 2
  • 常用函數(shù)大全: 原文鏈接:https://www.cnblogs.com/TensorSense/p/679599...
    陽光果粒C閱讀 1,347評論 2 9
  • Numpy的組成與功能 Numpy(Numeric Python)可以被理解為一個用python實現(xiàn)的科學計算包,...
    不做大哥好多年閱讀 4,562評論 0 10
  • 用于表示數(shù)據(jù) 1. NumPy庫入門 在cmd命令安裝NumPy包 python中調(diào)用NumPy庫,運行沒有報錯,...
    TARDIS_2ac9閱讀 803評論 0 6
  • 今天去參加了上海海歸人才創(chuàng)業(yè)大賽,當觀眾。一共12個參賽隊伍,其中有五家文化類公司,五家科技類公司,兩家醫(yī)療類公司...
    唯一的one閱讀 127評論 0 0

友情鏈接更多精彩內(nèi)容