日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

numpy均匀分布_Python计算类库(Numpy)

發(fā)布時(shí)間:2024/4/19 python 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy均匀分布_Python计算类库(Numpy) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python計(jì)算類庫(kù)(Numpy)

Python計(jì)算庫(kù)(Numpy)思維導(dǎo)圖

1. Numpy是什么?

NumPy(Numerical Python的縮寫)是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù)。使用NumPy,就可以很自然地使用數(shù)組和矩陣。 NumPy包含很多實(shí)用的數(shù)學(xué)函數(shù),涵蓋線性代數(shù)運(yùn)算、傅里葉變換和隨機(jī)數(shù)生成等功能

這個(gè)庫(kù)的前身是1995年就開(kāi)始開(kāi)發(fā)的一個(gè)用于數(shù)組運(yùn)算的庫(kù)。經(jīng)過(guò)了長(zhǎng)時(shí)間的發(fā)展,基本上成了絕大部分Python科學(xué)計(jì)算的基礎(chǔ)包,當(dāng)然也包括所有提供Python接口的深度學(xué)習(xí)框架

2. 為什么使用Numpy?

a) 便捷:

  • 對(duì)于同樣的數(shù)值計(jì)算任務(wù),使用NumPy要比直接編寫Python代碼便捷得多。這是因?yàn)镹umPy能夠直接對(duì)數(shù)組和矩陣進(jìn)行操作,可以省略很多循環(huán)語(yǔ)句,其眾多的數(shù)學(xué)函數(shù)也會(huì)讓編寫代碼的工作輕松許多

b) 性能:

  • NumPy中數(shù)組的存儲(chǔ)效率和輸入輸出性能均遠(yuǎn)遠(yuǎn)優(yōu)于Python中等價(jià)的基本數(shù)據(jù)結(jié)構(gòu)(如嵌套的list容器)。其能夠提升的性能是與數(shù)組中元素的數(shù)目成比例的。對(duì)于大型數(shù)組的運(yùn)算,使用NumPy的確很有優(yōu)勢(shì)。對(duì)于TB級(jí)的大文件,NumPy使用內(nèi)存映射文件來(lái)處理,以達(dá)到最優(yōu)的數(shù)據(jù)讀寫性能

c) 高效:

  • NumPy的大部分代碼都是用C語(yǔ)言寫成的,這使得NumPy比純Python代碼高效得多

注意:

  • NumPy也有其不足之處,由于NumPy使用內(nèi)存映射文件以達(dá)到最優(yōu)的數(shù)據(jù)讀寫性能,而內(nèi)存的大小限制了其對(duì)TB級(jí)大文件的處理;此外,NumPy數(shù)組的通用性不及Python提供的list容器。因此,在科學(xué)計(jì)算之外的領(lǐng)域,NumPy的優(yōu)勢(shì)也就不那么明顯

3. Numpy的安裝:

(1)官網(wǎng)安裝:http://www.numpy.org/

(2)pip 安裝:pip install numpy

(3)LFD安裝,針對(duì)windows用戶:http://www.lfd.uci.edu/~gohlke/pythonlibs/

(4)Anaconda安裝(推薦),Anaconda里面集成了很多關(guān)于python科學(xué)計(jì)算的第三方庫(kù),主要是安裝方便。下載地址:https://www.anaconda.com/download/

4. numpy 基礎(chǔ):

NumPy的主要對(duì)象是同種元素的多維數(shù)組。這是一個(gè)所有的元素都是一種類型。在NumPy中維度(dimensions)叫做軸(axes),軸的個(gè)數(shù)叫做秩(rank)。NumPy的數(shù)組類被稱作 ndarray(矩陣也叫數(shù)組) 。通常被稱作數(shù)組。常用的ndarray對(duì)象屬性有:ndarray.ndim(數(shù)組軸的個(gè)數(shù),軸的個(gè)數(shù)被稱作秩),ndarray.shape(數(shù)組的維度。這是一個(gè)指示數(shù)組在每個(gè)維度上大小的整數(shù)元組。

Numpy的數(shù)據(jù)類型:

例如:一個(gè)n行m列的矩陣:

  • .ndim
  • .shape
  • .size
  • .dtype

Numpy內(nèi)置的特征碼:

  • int8, int16, int32,int64 可以由字符串’i1’, ‘i2’,’i4’, ‘i8’代替,其余的以此類推

5. 創(chuàng)建數(shù)組并查看其屬性:

(1) 用np.array從python列表和元組創(chuàng)建數(shù)組:

  • 例:
    • import numpy as np a = np.array([[1,2,3], [4, 5, 6]], dtype=int) print(a.shape) # a.ndim, a.size, a.dtype
  • 例:
    • import numpy as np a = np.array([(1,2,3), (4, 5, 6)], dtype=float) print(a.shape) # a.ndim, a.size, a.dtype

(2) 用np.arange().reshape()創(chuàng)建數(shù)組:

  • 例:
    • import numpy as np a = np.arange(10).reshape(2, 5) # 創(chuàng)建2行5列的二維數(shù)組,

也可以創(chuàng)建三維數(shù)組,
a = np.arange(12).reshape(2,3,2)
print(a)

(3)用np.random.randint(最小值,最大值,個(gè)數(shù),類型).reshape(#,#)

  • 左閉右開(kāi)
  • 隨機(jī)整數(shù)

(4)用np.random.rand(#).reshape(#,#)

  • 左閉右開(kāi)
  • [0,1)均勻分布(小數(shù))
  • 個(gè)

(5)用np.random.randn(#)

  • 左閉右開(kāi)
  • 標(biāo)準(zhǔn)正態(tài)分布
  • 均值為0,方差為1

(6)用np.emty(#),reshape(#)

  • 固定值#生成(無(wú)限趨近于零)

(7)用np.ones(#),reshape(#)

  • 固定值1生成
  • 個(gè)

(8)用np.zeros(),reshape(#)

  • 固定值0生成
  • 個(gè)

(6)用np.emty(),reshape(#)

  • 固定值生成

6. 基本運(yùn)算:

array.sum()

  • 所有值累加和
  • array.sum(0)
    • 每一列的累加和
  • array.sum(1)
    • 每一行的累加和

+

  • array+array

-

  • array-array

*

  • np.dot(array,array)

T

  • array.T

linalg.inv

  • np.linalg.inv(array)

7. 常用函數(shù):

import numpy as np

array = np.random.randint(1,10,9).reshape(3,3) print(np.where(array>5,array,0))

8、索引、切片、迭代

索引:

  • import numpy as np a = arange(10)**3 a[2] a[2:5] a[:6:2] = -1000 a[ : :-1] for i in a:
  • 多維數(shù)組的索引
    • b = np.arange(20).reshape(5,4) b[2,3] b[0:5, 1] b[ : ,1] b[1:3, : ]

當(dāng)少于軸數(shù)的索引被提供時(shí),確失的索引被認(rèn)為是整個(gè)切片
b[-1] #相當(dāng)于b[-1,:]
b[i] 中括號(hào)中的表達(dá)式被當(dāng)作 i 和一系列 : ,來(lái)代表剩下的軸。NumPy也允許你使用“點(diǎn)”像 b[i,...] 。
點(diǎn) (…)代表許多產(chǎn)生一個(gè)完整的索引元組必要的分號(hào)。如果x是
秩為5的數(shù)組(即它有5個(gè)軸),那么:x[1,2,…] 等同于 x[1,2,:,:,:],x[…,3] 等同于 x[:,:,:,:,3],x[4,…,5,:] 等同 x[4,:,:,5,:].

  • 三維數(shù)組的索引:
    • c = np.arange(12).reshape(2,3,2) c[1] c[2,1] # 等價(jià)于c[2][1] c[2,1,1] # 等價(jià)于c[2][1][1]

通過(guò)數(shù)組索引
d = np.arange(10)**2 e = np.array ([3, 5, 6])

切片(起始值,結(jié)束值,最后值):

  • 實(shí)例:
    • 取第一行所有值:
      • array[0]
    • 取第一列所有值:
      • array[:,0]
    • 取第一行和第三行:
      • array[0::2,]
    • 取第二列和第四列:
      • array[::,1::2]
    • 取第一行和第三行的取第二列和第四列:
      • array[0::2,1::2]

迭代:

  • for i in range(0,array.shape[0]): for j in range (0,array.shape[1]): print(array[i][j],end="t") print()

9. 形狀操作:

ravel()

  • array.ravel()

vstack()

  • np.vstack((array,array))

hstack()

  • np.hstack((array,array))

stack()

  • np.stack((array,array,axis=0))

split()

  • np.split(array,#)

hsplit()

  • np.hsplit(array,#)

vsplit()

  • np.vsplit(array,#)

關(guān)注查看往期

總結(jié)

以上是生活随笔為你收集整理的numpy均匀分布_Python计算类库(Numpy)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。