国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

科學(xué)計(jì)算庫(kù)—numpy隨筆

這篇具有很好參考價(jià)值的文章主要介紹了科學(xué)計(jì)算庫(kù)—numpy隨筆。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

8.1、numpy

本質(zhì)是多維數(shù)組對(duì)象

list 類(lèi)型轉(zhuǎn)為 numpy 數(shù)組 更有利科學(xué)計(jì)算

8.1.1、為什么用 numpy?

1.雖然Python數(shù)組結(jié)構(gòu)中的列表list實(shí)際上就是數(shù)組,但是列表list保存的是對(duì)象的指針,list中的元素在系統(tǒng)內(nèi)存中是分散存儲(chǔ)的,例如[0,1,2]需要3個(gè)指針和3個(gè)整數(shù)對(duì)象,浪費(fèi)內(nèi)存和計(jì)算時(shí)間。

2.NumPy數(shù)組存儲(chǔ)在一個(gè)均勻連續(xù)的內(nèi)存塊中,訪(fǎng)問(wèn)更快;NumPy中的矩陣計(jì)算可以采用多線(xiàn)程的方式,計(jì)算更快。

結(jié)論:numpy 可提供高性能的矩陣運(yùn)算,作為數(shù)組 numpy 提供了許多方便統(tǒng)計(jì)計(jì)算的功能,數(shù)組結(jié)構(gòu)為ndarray。

numpy 和 list 有什么區(qū)別?

從存儲(chǔ)數(shù)據(jù)來(lái)看,numpy 存儲(chǔ)的是矩陣,list 存儲(chǔ)的是序列

下面舉個(gè)例子

li = [1,2,3,4]

Out: [1, 2, 3, 4]

arr = np.array(li)

Out: [1 2 3 4]

8.1.2、numpy 數(shù)據(jù)類(lèi)型推理

numpy 會(huì)對(duì)數(shù)據(jù)類(lèi)型進(jìn)行推理,規(guī)則:轉(zhuǎn)為適用性更強(qiáng)的數(shù)據(jù)類(lèi)型。

下面舉個(gè)例子:

科學(xué)計(jì)算庫(kù)—numpy隨筆

為什么會(huì)進(jìn)行數(shù)據(jù)類(lèi)型推理?

numpy 適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù),數(shù)據(jù)類(lèi)型推理就是為了保證數(shù)值類(lèi)型統(tǒng)一。

8.1.3、numpy 指定長(zhǎng)度數(shù)組快速創(chuàng)建

”零矩陣“

np.zeros()
np.zeros((3,4))
np.zeros((1,3,4))
np.zeros((1,1,3,4))

超出二維后的形式,以np.zeros((1,3,4))為例,嵌套1層,層內(nèi)3行4列;

array([[[0., 0., 0., 0.],
     [0., 0., 0., 0.],
     [0., 0., 0., 0.]]])

(1,1,3,4)相比(1,3,4),增加一維,多嵌套一層:

array([[[0., 0., 0., 0.],
     [0., 0., 0., 0.],
     [0., 0., 0., 0.]]])

(2,1,3,4)相比(1,1,3,4),數(shù)值增加,平行矩陣增加:

array([[[[0., 0., 0., 0.],
      [0., 0., 0., 0.],
      [0., 0., 0., 0.]]],


    [[[0., 0., 0., 0.],
      [0., 0., 0., 0.],
      [0., 0., 0., 0.]]]])

補(bǔ)充:

”1矩陣“

np.ones((row,col))

8.1.4、numpy 哪個(gè)是行、列?

最后兩組數(shù)為行和列。

倒是第一組為列,倒數(shù)第二組為行(若存在)

8.1.5、numpy 如何進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換?

arr = np.array([1.1,1.2,-1,-3.3])

以 arr 為例,將 arr 內(nèi)的數(shù)據(jù)類(lèi)型轉(zhuǎn)為 int32:

arr.astype(np.int32)

8.1.6、numpy 有幾種乘法?

四種。

1)星乘(*)

數(shù)組的對(duì)應(yīng)元素相乘

arr1 * arr2

2)點(diǎn)乘(np.dot)

就是矩陣乘法

a = np.array([...])
b = np.array([...])
np.dot(a,b)

3)叉乘(np.cross)、外乘(np.outer)

細(xì)說(shuō)NumPy數(shù)組的四種乘法的使用

8.1.7、numpy 索引和切片操作

舉個(gè)例子:

科學(xué)計(jì)算庫(kù)—numpy隨筆

補(bǔ)充:

花式索引

通過(guò)整型數(shù)組進(jìn)行索引

花式索引為什么有兩層中括號(hào)?

以數(shù)組對(duì)象 arr 為例,向arr[]中傳入數(shù)組作為參數(shù),所以才有了兩個(gè)中括號(hào)

在機(jī)器學(xué)習(xí)中常通過(guò)使用花式索引來(lái)打亂數(shù)據(jù)集的樣本順序,避免機(jī)器學(xué)習(xí)模型學(xué)習(xí)到樣本的位置噪聲,對(duì)于監(jiān)督學(xué)習(xí)的數(shù)據(jù)集如果打亂了樣本還需要打亂相對(duì)應(yīng)的標(biāo)簽值,樣本與標(biāo)簽都是一一對(duì)應(yīng)的關(guān)系,使用花式索引能夠輕松的解決。

注意,這里有一個(gè)問(wèn)題:

arr = np.arange(12).reshape((3,4))
print(arr[[0,2]])

Out:

[[ 0  1  2  3]
[ 8  9 10 11]]

換一個(gè)寫(xiě)法,將 reshape 拆開(kāi),無(wú)法得到想要的結(jié)果(尚不知具體原因):

arr.reshape() 本身不會(huì)改變arr,而是得到改變形狀后的一個(gè)返回值,這就是原因。——2023.7.11

科學(xué)計(jì)算庫(kù)—numpy隨筆
這個(gè)寫(xiě)法又有一種補(bǔ)救(2023-5-16):

d = np.arange(12)
print(d.reshape(3,4)[[0,2]])

要用花式索引,不要讓reshape方法‘’單著‘’

Out:

[[ 0  1  2  3]
 [ 8  9 10 11]]

8.1.8、numpy 比較運(yùn)算

names = np.array(['名字1','名字2','名字3'])
sex = np.array(['M','F'])

這里舉幾個(gè) and、or 的例子:

(names == '名字4') & (sex == 'M')

Out:array([False, False, False])

(names == '名字1') | (names == '名字5')

Out:array([ True, False, False])

8.1.9、numpy 如何指定行列?

arr = np.arange(16)

以 arr 為例,整成 4行4列:

arr.reshape(4,4)

Out:

array([[ 0,  1,  2,  3],
 [ 4,  5,  6,  7],
 [ 8,  9, 10, 11],
 [12, 13, 14, 15]])

8.1.10、numpy 如何轉(zhuǎn)置?

比 list 強(qiáng)大之處,舉個(gè)例子:

arr = np.arange(24).reshape((3,8))
arr.T#轉(zhuǎn)置

Out:

array([[ 0,  8, 16],
 [ 1,  9, 17],
 [ 2, 10, 18],
    [ 3, 11, 19],
    [ 4, 12, 20],
    [ 5, 13, 21],
    [ 6, 14, 22],
    [ 7, 15, 23]])

補(bǔ)充:

軸轉(zhuǎn)置

arr 為三維矩陣,初始時(shí)刻存在的三個(gè)軸下標(biāo)分別0、1、2,基于下標(biāo)完成軸轉(zhuǎn)置,如下圖:

科學(xué)計(jì)算庫(kù)—numpy隨筆

8.1.11、numpy where 函數(shù)

res = [x if c else y for x,y,c in zip(x_arr,y_arr,conditon)]#list對(duì)象
res = np.array(res)#numpy對(duì)象

等價(jià)表示

res = np.where(condition,x_arr,y_arr) #返回numpy對(duì)象

若條件 condition 成立,取 x_arr,否則取 y_arr 。

8.1.12、 numpy 如何值替換?

arr = np.random.randn(4,4)# 4*4隨機(jī)矩陣

利用8.1.11提到的where函數(shù),實(shí)現(xiàn)值替換,舉個(gè)例子,將正數(shù)替換為5,負(fù)數(shù)為-5:

arr = np.where(arr>0,5,-5)

8.1.13、numpy 數(shù)學(xué)運(yùn)算

1)生成隨機(jī)矩陣

例如生成一個(gè)4*4隨機(jī)矩陣:

arr = np.random.randn(4,4)

隨機(jī)矩陣生成,數(shù)據(jù)源有兩種,

np.random.rand()
np.random.randn()

rand() :取值從0,1之間的均勻分布中抽樣。

randn():取值從以0為均值,1為方差的標(biāo)準(zhǔn)正態(tài)分布中抽樣。

例如,生成4 * 4 隨機(jī)矩陣,

arr = np.random.randn(4,4)# 4*4隨機(jī)矩陣
print(arr)
arr = np.random.rand(4,4)# 4*4隨機(jī)矩陣
print(arr)

Out:

[[-0.38672283  0.2510875   0.84164035 -1.171516  ]
[-0.34456511 -1.43556016  0.78061698  0.68466033]
[-1.05684828  0.66353918 -0.16626838 -1.0837476 ]
[-0.54743772 -0.70599557 -0.24332244 -0.18156644]]
[[0.63981419 0.56708754 0.03062314 0.77049354]
[0.79681395 0.12707638 0.05749961 0.21459898]
[0.62925634 0.10423857 0.47172718 0.57837616]
[0.68260032 0.54003265 0.57571165 0.50320049]]

2)平均值、求和

怎么確定 axis 方向?

科學(xué)計(jì)算庫(kù)—numpy隨筆

以 arr 對(duì)象為例:

arr.mean()#對(duì)所有元素
arr.mean(axis = 0)#0軸沿著行的方向垂直向下運(yùn)算
arr.mean(axis = 1)#1軸沿著列的方向水平延伸運(yùn)算
arr.sum()

3)排序

以 arr 對(duì)象為例:

arr.sort()返回的是原數(shù)組的“視圖”,而不是 copy

np.sort(arr)返回的是原數(shù)組的 copy, 而不是“視圖”,當(dāng)有保留原 arr 需求時(shí)用這個(gè)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-430854.html

到了這里,關(guān)于科學(xué)計(jì)算庫(kù)—numpy隨筆的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深入探索NumPy:科學(xué)計(jì)算利器的常用函數(shù)大全【第86篇—NumPy常用函數(shù)大全】

    深入探索NumPy:科學(xué)計(jì)算利器的常用函數(shù)大全【第86篇—NumPy常用函數(shù)大全】

    在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域,NumPy(Numerical Python)模塊是Python中最常用的科學(xué)計(jì)算庫(kù)之一。它提供了豐富的功能,包括數(shù)組操作、數(shù)學(xué)函數(shù)、統(tǒng)計(jì)方法等,為數(shù)據(jù)處理和分析提供了強(qiáng)大的工具。本文將重點(diǎn)介紹NumPy模塊中常用的函數(shù),涵蓋字符串處理、數(shù)學(xué)運(yùn)算、算術(shù)操作、

    2024年02月20日
    瀏覽(22)
  • 在科學(xué)計(jì)算領(lǐng)域獨(dú)領(lǐng)風(fēng)騷,NumPy書(shū)寫(xiě)輝煌傳奇

    在數(shù)字世界的邊緣,有一座神奇的城市,這座城市由無(wú)數(shù)個(gè)數(shù)據(jù)點(diǎn)和向量構(gòu)成,街道上流淌著數(shù)不清的數(shù)組和矩陣。在城市的中心,聳立著一座巨大的科學(xué)計(jì)算塔,它的外墻是由數(shù)學(xué)符號(hào)和代碼構(gòu)成,散發(fā)著閃爍的數(shù)字光芒。城里的居民們穿梭于數(shù)組的巷道間,駕馭著向量的

    2024年03月24日
    瀏覽(25)
  • python庫(kù),科學(xué)計(jì)算與數(shù)據(jù)可視化基礎(chǔ),知識(shí)筆記(numpy+matplotlib)

    python庫(kù),科學(xué)計(jì)算與數(shù)據(jù)可視化基礎(chǔ),知識(shí)筆記(numpy+matplotlib)

    這篇主要講一下數(shù)據(jù)處理中科學(xué)計(jì)算部分的知識(shí)。 之前有一篇pandas處理數(shù)據(jù)的。 講一下這幾個(gè)庫(kù)的區(qū)別。 Pandas主要用來(lái)處理類(lèi)表格數(shù)據(jù)(excel,csv),提供了計(jì)算接口,可用Numpy或其它方式進(jìn)行計(jì)算。 NumPy 主要用來(lái)處理數(shù)值數(shù)據(jù)(尤其是矩陣,向量為核心的),本質(zhì)上是純

    2024年02月02日
    瀏覽(33)
  • python實(shí)戰(zhàn)應(yīng)用講解-【numpy科學(xué)計(jì)算】line_profiler模塊(附python示例代碼)

    目錄 ? Numpy 安裝line_profiler 準(zhǔn)備工作 具體步驟 Numpy 用line_profiler分析代碼 具體步驟 攻略小結(jié)

    2023年04月08日
    瀏覽(110)
  • 數(shù)據(jù)科學(xué)中的Python:NumPy和Pandas入門(mén)指南【第121篇—NumPy和Pandas】

    數(shù)據(jù)科學(xué)中的Python:NumPy和Pandas入門(mén)指南【第121篇—NumPy和Pandas】

    數(shù)據(jù)科學(xué)是當(dāng)今數(shù)字時(shí)代中的一個(gè)重要領(lǐng)域,而Python是數(shù)據(jù)科學(xué)家們最喜愛(ài)的編程語(yǔ)言之一。在這篇博客中,我們將介紹Python中兩個(gè)強(qiáng)大的庫(kù)——NumPy和Pandas,它們?cè)跀?shù)據(jù)處理和分析中發(fā)揮著重要作用。 NumPy是用于科學(xué)計(jì)算的基礎(chǔ)包,提供了高性能的多維數(shù)組對(duì)象( numpy.nda

    2024年03月15日
    瀏覽(21)
  • JAX: 快如 PyTorch,簡(jiǎn)單如 NumPy - 深度學(xué)習(xí)與數(shù)據(jù)科學(xué)

    JAX: 快如 PyTorch,簡(jiǎn)單如 NumPy - 深度學(xué)習(xí)與數(shù)據(jù)科學(xué)

    JAX 是 TensorFlow 和 PyTorch 的新競(jìng)爭(zhēng)對(duì)手。 JAX 強(qiáng)調(diào)簡(jiǎn)單性而不犧牲速度和可擴(kuò)展性。由于 JAX 需要更少的樣板代碼,因此程序更短、更接近數(shù)學(xué),因此更容易理解。 長(zhǎng)話(huà)短說(shuō): 使用 import jax.numpy 訪(fǎng)問(wèn) NumPy 函數(shù),使用 import jax.scipy 訪(fǎng)問(wèn) SciPy 函數(shù)。 通過(guò)使用 @jax.jit 進(jìn)行裝飾,可

    2024年02月03日
    瀏覽(95)
  • 【Verilog語(yǔ)法013】verilog多維數(shù)組(多維矩陣)的寫(xiě)法

    有兩種表示方法:一種是verilog語(yǔ)法的多維數(shù)組,另一種是system verilog語(yǔ)法的多維數(shù)組。 reg [A1:A0] a [B1:B0] [C1:C0] [D1:D0] ; 引用順序是:a[B][C][D][A], 定義的a 的左邊只有位寬,一對(duì)方括號(hào)[],a的右邊可以擴(kuò)展維數(shù),多對(duì)方括號(hào)[],變化速度:BCDA packed維度: packed數(shù)組是一種將1個(gè)向量

    2024年02月08日
    瀏覽(20)
  • C++ 獲取數(shù)組大小、多維數(shù)組操作詳解

    要獲取數(shù)組的大小,可以使用 sizeof() 運(yùn)算符: 示例 結(jié)果: 為什么結(jié)果顯示為 20 而不是 5,當(dāng)數(shù)組包含 5 個(gè)元素時(shí)? 這是因?yàn)?sizeof() 運(yùn)算符返回類(lèi)型的大?。ㄒ宰止?jié)為單位)。 要找出數(shù)組有多少個(gè)元素,必須將數(shù)組的大小除以它包含的數(shù)據(jù)類(lèi)型的大?。?示例 結(jié)果: 然而,

    2024年04月10日
    瀏覽(24)
  • 漏斗分析、 python學(xué)習(xí)路徑地圖、數(shù)據(jù)科學(xué)技能書(shū)知識(shí)地圖、數(shù)據(jù)安全治理解決方案、AIGC發(fā)展研究、經(jīng)營(yíng)的本質(zhì)…| 本周精華...

    漏斗分析、 python學(xué)習(xí)路徑地圖、數(shù)據(jù)科學(xué)技能書(shū)知識(shí)地圖、數(shù)據(jù)安全治理解決方案、AIGC發(fā)展研究、經(jīng)營(yíng)的本質(zhì)…| 本周精華...

    ▲ 點(diǎn)擊上方卡片關(guān)注我,回復(fù)“8”,加入數(shù)據(jù)分析·領(lǐng)地, 一起學(xué)習(xí)數(shù)據(jù)分析,持續(xù)更新數(shù)據(jù)分析學(xué)習(xí)路徑相關(guān)資料~ (精彩數(shù)據(jù)觀點(diǎn)、學(xué)習(xí)資料、數(shù)據(jù)課程分享、讀書(shū)會(huì)、分享會(huì)等你一起來(lái)乘風(fēng)破浪~ )回復(fù)“小飛象”,領(lǐng)取數(shù)據(jù)分析知識(shí)大禮包。 關(guān)注微信公眾號(hào): 木木

    2024年02月11日
    瀏覽(23)
  • 【C語(yǔ)言】數(shù)組的聲明和使用(一維數(shù)組、多維數(shù)組、字符數(shù)組)

    【C語(yǔ)言】數(shù)組的聲明和使用(一維數(shù)組、多維數(shù)組、字符數(shù)組)

    C語(yǔ)言支持?jǐn)?shù)組數(shù)據(jù)結(jié)構(gòu),是用來(lái)存儲(chǔ)固定大小的相同類(lèi)型元素的順序集合,往往被認(rèn)為是一系列相同類(lèi)型的變量。 特點(diǎn): 有序數(shù)據(jù)的集合。 數(shù)組內(nèi)所有元素類(lèi)型相同。 所有的數(shù)組都是由連續(xù)的內(nèi)存位置組成,最低的地址對(duì)應(yīng)第一個(gè)元素,最高的地址對(duì)應(yīng)最后一個(gè)元素。 數(shù)

    2024年02月16日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包