Numpy

目錄html

苦numpy久矣!python

Numpy 教程數組

import numpy as np

The Basics

屬性 解釋
ndarray.ndim 返回ndarray的軸數,向量軸爲1,矩陣是2,以此類推
ndarray.shape 返回ndarray的形狀(n,m)
ndarray.size 返回ndarray的大小,即元素的個數
ndarray.dtype 返回ndarray的數據類型
ndarray.itemsize 返回數據類型所佔位數?
ndarray.data
a = np.arange(15).reshape(3, 5)
a
a.shape
a.ndim
a.dtype.name
a.itemsize
a.size
type(a)
b = np.array([6, 7, 8])
b
type(b)

在這裏插入圖片描述

Array Creation

a = np.array(1,2,3,4)    # WRONG
a = np.array([1,2,3,4])  # RIGHT

dtype=complex

c = np.array([[1, 2], [3, 4]], dtype = complex)

np.ones(), np.zeros(), np.empty()

默認dtype=float.64app

np.zeros((3,4))  
np.ones((2,3,4), dtype = np.int16)
np.empty((2,3)) #這玩意兒輸出的狀況視內存而定,我輸出的和上面的同樣了。

np.zeros_like() np.ones_like() np.empty_like()
注意:連數據類型一併複製的
在這裏插入圖片描述dom

np.arange(), np.linspace()

np.arange(10, 30, 5) #array([10, 15, 20, 25])  沒有30, 跟range同樣

np.arange() 的步長還能夠爲浮點數,這是range()所不具有的,不過教程並不推薦這種作法(彷佛是由於不穩定)。函數

np.arange(0, 2, 0.3)
np.linspace(0, 2, 9) #array([0.  , 0.25, 0.5 , 0.75, 1.  , 1.25, 1.5 , 1.75, 2.  ])

9即個數

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

*.rand() [0,1]的均勻分佈ui

np.random.rand(3, 2, 2)

在這裏插入圖片描述

.randn() 標準正態分佈
.randn() * \(\sigma\) + \(\mu\) 服從 \(\mathcal{N}(\mu,\sigma^2)\)spa

np.fromfunction()

在這裏插入圖片描述

Printing Arrays

np.set_printoptions(threshold=np.nan)

在這裏插入圖片描述

在這裏插入圖片描述

Basic Operations

ndarray裏面的 + - * / **都是元素對元素的。
在這裏插入圖片描述code

矩陣乘法 dot() @

a1 = np.arange(8)
b1 = np.arange(8)
a2 = a1.reshape(2, 4)
b2 = b1.reshape(4, 2)
c1 = np.arange(2)
a1 @ b1 #140
a1.dot(b1) # 140
#a2 @ a2 | a2.dot(a2)  Error
a2 @ b2 #array([[28, 34], [76, 98]])
a2.dot(b2) #array([[28, 34], [76, 98]])
#a2 @ c1 | a2.dot(c1) Error
b2 @ c1 #array([1, 3, 5, 7])
b2.dot(c1) #array([1, 3, 5, 7])

1.出現最後3個的緣由:c1.shape: (2, )htm

  1. 看來@ 和 dot() 並沒有不一樣 我覺得在向量的時候不同

+=, *= 倆邊數據類型不一致的時候有風險

在這裏插入圖片描述

在這裏插入圖片描述

注意:倆個ndarray 作運算,「粗糙」的服從更加精準的。

ndarray.sum()| min() | max() | cumsum()

都有個共同的關鍵字: axis
axis = 0 做用於列
axis = 1 做用於行

ndarray.cumsum() 累加和
在這裏插入圖片描述

Indexing, Slicing, and Iterating

向量

a = np.arange(10) ** 3 #array([  0,   1,   8,  27,  64, 125, 216, 343, 512, 729], dtype=int32)
a[2]
a[2:5]
a[:6:2]
a[: :-1]
for i in a:
    print(i)

與list同樣(沒看出啥差異)

多軸(多維)

在這裏插入圖片描述

在這裏插入圖片描述

注意:多維的時候,c[1],就當成list來理解。

多維狀況下的迭代,也能夠用list來理解,就是一層層(一個軸一個軸)地往下走。

d[1,...] d[..., 1] d[1,...,1]

在這裏插入圖片描述

Shape Manipulation (操做shape屬性)

ndarray.ravel() | .reshape() | .T

注意:上面的方法不改變數組自己 也能夠np.*()
.ravel() #按行排列,返回一維數組 (C-style 啥意思不明白)
.T 轉置
在這裏插入圖片描述

np.resize() | ndarray.resize()

和reshape()不一樣,用來改變對象自己

在這裏插入圖片描述

Stacking together different arrays

np.vstack((a,b)) | np.hstack((a, b))

在這裏插入圖片描述

np.column_stack((a, b)) | np.row_stack((a, b))

在這裏插入圖片描述

分片

在這裏插入圖片描述

Copies and Views

在這裏插入圖片描述

和列表和字典同樣。

非對象綁定複製 view()

因爲上面出現的狀況,有些時候須要非對象綁定的複製(本身取的名字),就是a,b指向的內存並不是同一個。
在這裏插入圖片描述

Deep Copy copy()

比view()更極端 這點和list就不同了(list環境下是淺拷貝)

在這裏插入圖片描述

花裏胡哨的Index用法

傳入list|ndarray查詢

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

求最值

在這裏插入圖片描述

修改元素

在這裏插入圖片描述
在這裏插入圖片描述

Index with Boolean Arrays 你要仍是不要

在這裏插入圖片描述

在這裏插入圖片描述

The i_x() function

不懂
在這裏插入圖片描述

Universal Functions

np.arange()

在這裏插入圖片描述

np.exp()

在這裏插入圖片描述

np.sqrt()

在這裏插入圖片描述

np.add() | +

在這裏插入圖片描述

np.all()

out 關鍵字按照教程打出錯了,不知爲什麼。
在這裏插入圖片描述

np.any()

關於out部分仍是出錯
在這裏插入圖片描述

np.apply_along_axis() #傳列 傳行 函數處理

注意:diag()的時候有毛病啊,有毛病的啊,不曉得爲何了,你妹!
在這裏插入圖片描述
在這裏插入圖片描述

np.argmax() 返回最大所在的位置(並不是是座標)

在這裏插入圖片描述

np.argmin()

在這裏插入圖片描述

np.argsort() *排序,輸出位置,好用
在這裏插入圖片描述

np.average(,weights) 能夠加權重

在這裏插入圖片描述

np.bincount() #數有多少個數字,也能夠加權重

只能用於一維的數組,且元素是非負整數
在這裏插入圖片描述

np.ceil() 向上取整

在這裏插入圖片描述

np.clip(a, x1, x2) [x1, x2] 比x1小的變成x1,比x2大的變成x2,還支持組組操做

在這裏插入圖片描述

np.conj() #複數

在這裏插入圖片描述

np.corrcoef() #相關係數矩陣

np.cov() #協方差陣 \(XX^{\mathrm{T}}\) 要求列樣本,而不是通常的行樣本

np.cross() #向量叉乘

在這裏插入圖片描述

np.cumprod() 累積

在這裏插入圖片描述

np.cumsum() 累和

在這裏插入圖片描述

np.diff() 差分

在這裏插入圖片描述

np.dot()

在這裏插入圖片描述

np.floor() 向下取整

在這裏插入圖片描述

np.inner() #內積?

在這裏插入圖片描述

np.inv()

np.lexsort()

在這裏插入圖片描述

np.max()

np.maximum() 組組比較

在這裏插入圖片描述

np.mean()

np.median() #中位數

在這裏插入圖片描述

np.min()

np.minimum()

在這裏插入圖片描述

np.nonzero() 返回數組非零元的座標indices

在這裏插入圖片描述

np.outer() # \(xx^{\mathrm{T}}\)

在這裏插入圖片描述

np.prod() 數組內元素的乘積

在這裏插入圖片描述

np.re()

np.round()

在這裏插入圖片描述

np.sort()

在這裏插入圖片描述

np.std() 標準差

在這裏插入圖片描述

np.sum() 能夠設定初始值

在這裏插入圖片描述

np.trace() 跡

在這裏插入圖片描述

np.tranpose() #可不僅僅是轉置

在這裏插入圖片描述

np.var() 方差

在這裏插入圖片描述

np.vdot() #向量乘法, 不是向量弄成向量

在這裏插入圖片描述

np.vectorize() #向量版np.apply_along_axis()?

在這裏插入圖片描述

np.where() #適合找indices

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

np.mgrid | np.meshgrid

numpy.mgrid

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息