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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

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

Python計算類庫(Numpy)

Python計算庫(Numpy)思維導圖

1. Numpy是什么?

NumPy(Numerical Python的縮寫)是一個開源的Python科學計算庫。使用NumPy,就可以很自然地使用數組和矩陣。 NumPy包含很多實用的數學函數,涵蓋線性代數運算、傅里葉變換和隨機數生成等功能

這個庫的前身是1995年就開始開發的一個用于數組運算的庫。經過了長時間的發展,基本上成了絕大部分Python科學計算的基礎包,當然也包括所有提供Python接口的深度學習框架

2. 為什么使用Numpy?

a) 便捷:

  • 對于同樣的數值計算任務,使用NumPy要比直接編寫Python代碼便捷得多。這是因為NumPy能夠直接對數組和矩陣進行操作,可以省略很多循環語句,其眾多的數學函數也會讓編寫代碼的工作輕松許多

b) 性能:

  • NumPy中數組的存儲效率和輸入輸出性能均遠遠優于Python中等價的基本數據結構(如嵌套的list容器)。其能夠提升的性能是與數組中元素的數目成比例的。對于大型數組的運算,使用NumPy的確很有優勢。對于TB級的大文件,NumPy使用內存映射文件來處理,以達到最優的數據讀寫性能

c) 高效:

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

注意:

  • NumPy也有其不足之處,由于NumPy使用內存映射文件以達到最優的數據讀寫性能,而內存的大小限制了其對TB級大文件的處理;此外,NumPy數組的通用性不及Python提供的list容器。因此,在科學計算之外的領域,NumPy的優勢也就不那么明顯

3. Numpy的安裝:

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

(2)pip 安裝:pip install numpy

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

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

4. numpy 基礎:

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

Numpy的數據類型:

例如:一個n行m列的矩陣:

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

Numpy內置的特征碼:

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

5. 創建數組并查看其屬性:

(1) 用np.array從python列表和元組創建數組:

  • 例:
    • 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()創建數組:

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

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

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

  • 左閉右開
  • 隨機整數

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

  • 左閉右開
  • [0,1)均勻分布(小數)

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

  • 左閉右開
  • 標準正態分布
  • 均值為0,方差為1

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

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

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

  • 固定值1生成

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

  • 固定值0生成

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

  • 固定值生成

6. 基本運算:

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. 常用函數:

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:
  • 多維數組的索引
    • b = np.arange(20).reshape(5,4) b[2,3] b[0:5, 1] b[ : ,1] b[1:3, : ]

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

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

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

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

  • 實例:
    • 取第一行所有值:
      • 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,#)

關注查看往期

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。