真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

科學(xué)計(jì)算庫(kù)Numpy基礎(chǔ)&提升(理解+重要函數(shù)講解)

Intro

對(duì)于同樣的數(shù)值計(jì)算任務(wù),使用numpy比直接編寫python代碼實(shí)現(xiàn) 優(yōu)點(diǎn):

創(chuàng)新互聯(lián)一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、成都網(wǎng)頁(yè)設(shè)計(jì)、小程序制作、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、重慶APP開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見證!

  • 代碼更簡(jiǎn)潔: numpy直接以數(shù)組、矩陣為粒度計(jì)算并且支持大量的數(shù)學(xué)函數(shù),而python需要用for循環(huán)從底層實(shí)現(xiàn);
  • 性能更高效: numpy的數(shù)組存儲(chǔ)效率和輸入輸出計(jì)算性能,比python使用list好很多,用numpy進(jìn)行計(jì)算要比原生Python快得多,而且數(shù)據(jù)量越大,效果越明顯;numpy的大部分代碼都是c語(yǔ)言實(shí)現(xiàn)的,這是numpy比python高效的原因

numpy核心:ndarray對(duì)象

ndarray對(duì)象

  • numpy的核心數(shù)據(jù)結(jié)構(gòu),叫做array就是數(shù)組,array對(duì)象可以是一維數(shù)組,也可以是多維數(shù)組
  • python的list也可以實(shí)現(xiàn)相同的功能,但是array的優(yōu)勢(shì)在于性能好,包含數(shù)組元數(shù)據(jù)信息、大量的便捷函數(shù)
  • 成為 Scipy、Pandas、scilit-learn、tensorflow、paddlepaddle等框架的通用底層語(yǔ)言
  • numpy的array和python的list的一個(gè)區(qū)別是它的元素必須都是同一種數(shù)據(jù)類型,這也是numpy高性能的一個(gè)原因

ndarray屬性

個(gè)人以前會(huì)弄混shape和size,注意shape打印的是數(shù)組的形狀是一個(gè)元組,size則是表示數(shù)組大小即總共有多少個(gè)元素

  • shape 返回一個(gè)元組 表示array的形狀
  • ndim 返回一個(gè)數(shù)字 表示array的維度的數(shù)目
  • size 返回一個(gè)數(shù)字 表示array中所有數(shù)據(jù)元素的數(shù)目
  • dtype array中元素的數(shù)據(jù)類型,a.astype(str) 可以把a(bǔ)數(shù)組元素轉(zhuǎn)為str類型
  • itemsize 表示數(shù)組中每個(gè)元素的字節(jié)大小

創(chuàng)建array的方法

  • 從Python的列表list和嵌套列表創(chuàng)建array,np.array([...])
  • 使用函數(shù)arange、linspace等創(chuàng)建等差數(shù)組,np.arange(start,stop,step,dtype) 左閉右開,np.linspace(start,stop,num,endpoint) 默認(rèn)左右取閉,num是要?jiǎng)h除的等間隔樣例數(shù)量(默認(rèn)50),endpoint 序列中是否包含stop值, 默認(rèn)為true
  • 使用ones、ones_like、zeros、zeros_like、empty、empty_like、full、full_like、eye等函數(shù)創(chuàng)建,注意使用empty創(chuàng)建的數(shù)據(jù)是未初始化的,里面的值可能是隨機(jī)值不要用,full則是將一個(gè)給定大小的數(shù)組填滿固定值,用法如np.full((2, 4), 666)
  • 生成隨機(jī)數(shù)的np.random模塊創(chuàng)建,np.random.seed(2022) 設(shè)置隨機(jī)種子,使得每次隨機(jī)的結(jié)果固定,np.random.rand(2,5) 隨機(jī)生成 2行5列的2維數(shù)組,返回?cái)?shù)據(jù)在[0,1)之間;np.random.randint(2,5,5) 在[2,5) 范圍內(nèi)生成5個(gè)隨機(jī)整數(shù);np.random.uniform(2,5,10) 在 [2,5) 之間 生成均勻分布的10個(gè)數(shù)字;np.random.uniform(2,5,(2,5)) 在 [2,5) 之間 生成均勻分布的(2,5)個(gè)數(shù)字; np.random.randn((2,5)) 則返回有標(biāo)準(zhǔn)正態(tài)分布的數(shù)據(jù),均值1方差0;np.random.normal(1,10,(2,5)) 則可指定均值和標(biāo)準(zhǔn)差;另外,choice 從給定的數(shù)組里 生成隨機(jī)結(jié)果,shuffle把一個(gè)數(shù)組進(jìn)行隨機(jī)排列(如果數(shù)組是多維的 則只會(huì)在第一維度打散數(shù)據(jù)),permutation 把一個(gè)數(shù)組進(jìn)行隨機(jī)排列 ,或者數(shù)字的全排列,兩者功能相同但permutation不會(huì)更改原來(lái)的arr 會(huì)返回一個(gè)新的copy

numpy的數(shù)組索引

三種索引方法:

  • 基礎(chǔ)索引,切片法,不詳細(xì)敘述
  • 神奇索引,就是用整數(shù)數(shù)組進(jìn)行的索引,比如對(duì)于x = np.arange(10),可以用x[np.array([[0,2],[1,3]])]來(lái)取x對(duì)應(yīng)位置的值;對(duì)于二維數(shù)組,Y[:,[0, 2]] 篩選第0和第2列,Y[[0,2,3],[1,2,3]]同時(shí)指定行列
  • 布爾索引,對(duì)于x = np.arange(10),可以用x>5返回bool值的數(shù)組,x[x>5] = 1通過(guò)條件進(jìn)行賦值,把x中大于5的值全部賦為1,x[x<5] += 20,小于5的值全部加20,還可以進(jìn)行條件組合,比如x[(x%2==0)| (x>7)]x[(x%2==0)& (x>7)];注意對(duì)于二維數(shù)組Y = np.arange(20).reshape(4, 5) 來(lái)說(shuō),既有行又有列 因此返回的是 行列一維數(shù)組Y[Y>5] 返回的是行列一維數(shù)組,可以用Y[:, 3][Y[:, 3]>5] 把第3列大于5的行數(shù)據(jù)篩選出來(lái)

numpy數(shù)據(jù)操作

數(shù)組數(shù)學(xué)操作

A*B是對(duì)應(yīng)位置元素相乘,對(duì)于arr = np.arange(12).reshape(3,4),可以用各種數(shù)學(xué)統(tǒng)計(jì)函數(shù),包括sum,prod(元素乘積),cumsum(np.cumsum(arr)從頭到尾累加,每加一次輸出一個(gè)元素),cumprod(累積),min,max,median,mean,np.percentile(arr,[25,50,75])np.quantile(arr,[0.25,0.5,0.75])求取數(shù)列第?分位的數(shù)值(后者范圍為0-1),std(標(biāo)準(zhǔn)差)

,var(方差),np.average(arr, weights=np.random.rand(*arr.shape)) 加權(quán)平均,argmax 尋找最大值的下標(biāo)

  • 對(duì)于numpy的聚合類函數(shù)的axis參數(shù)解釋:axis=0代表行 axis=1 代表列,axis=0 代表把行消解掉,axis=1 代表把列消解掉;axis=0 代表跨行計(jì)算, axis=1 代表跨列計(jì)算

數(shù)組合并操作

對(duì)于a = np.arange(9).reshape(3,3)以及b = np.arange(9,18).reshape(3,3),合并行(行變多)使用np.concatenate([a,b])np.vstack([a,b])np.row_stack([a,b]) ,合并列(列變多)使用np.concatenate([a,b],axis=1)np.hstack([a,b])np.column_stack([a,b])。

參考

[1-5 Numpy教程 — 梗直哥隨筆 v0.1 文檔 (gengzhige-essay.readthedocs.io)](https://gengzhige-essay.readthedocs.io/docs/01 環(huán)境配置/1-5 Numpy教程.html)

科學(xué)計(jì)算庫(kù)Numpy - mathor (wmathor.com)


網(wǎng)頁(yè)名稱:科學(xué)計(jì)算庫(kù)Numpy基礎(chǔ)&amp;提升(理解+重要函數(shù)講解)
標(biāo)題URL:http://weahome.cn/article/dsoggsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部