import numpy as np
約定俗稱要把他變成nppython
https://docs.scipy.org/doc/numpy/reference/?v=20190307135750數組
import numpy as np #建立一維的ndarray對象 arr = np.array([1, 2, 3]) print(arr) #[1 2 3] #建立二維的ndarray對象 arr = np.array([[1, 2, 3], [4,5,6]]) print(arr) ''' [[1 2 3] [4 5 6]] ''' #建立三維的ndarray對象 arr = np.array([[[1, 2, 3],[3,2,1]], [[4,5,6],[6,5,4]]]) print(arr) ''' [[[1 2 3] [3 2 1]] [[4 5 6] [6 5 4]]] ''' #咱們能夠這樣理解.其實內這個能夠至關於幾何裏面的,點,線,面,裏面各個元素至關一個點,一個列表裏面有幾個元素至關於線也就是一維,而後列表裏面套列表至關於線,以此類推
import numpy as np arr = np.array([[1, 2, 3], [4,5,6]]) print(arr.shape) #(2, 3) # (矩陣的行數,矩陣的列數)
import numpy as np arr = np.array([[1, 2, 3], [4,5,6]]) #取第一行所有 print(arr[0,:]) #取第一列所有 print(arr[:,0]) #取第二行第二個 print(arr[1,1],type(arr[1,1])) #5 <class 'numpy.int32'> print(arr[1,1:2],type(arr[1,1:2]))#[5] <class 'numpy.ndarray'> #取第二行第第二個和第三個 print(arr[1,1:3]) #取大於3的值 print(arr[arr>3]) #取第第一列大於3的值 arr_lien = arr[:,0] print(arr_lien[arr_lien>3])
import numpy as np arr = np.array([[1, 2, 3], [4,5,6]]) print(arr>5) ''' [[False False False] [False False True]] '''
用切片取值而後進行賦值
import numpy as np arr1 = np.array([[1, 2, 3], [4,5,6]]) arr1 = np.array([[3, 2, 4], [5,3,7]]) print(np.concatenate((arr1,arr2),axis=0或1) #前面只能寫入一個容器,後面用axis控制豎着合併仍是橫着合併
np.arage(起始值,結束值,步長)#顧頭不顧尾,用法相似for 循環中的range
# 構造一個等差數列,取頭也取尾,從0取到20,取5個數 print(np.linspace(0, 20, 5)) #[ 0. 5. 10. 15. 20.] # 構造一個等比數列,從10**0取到10**20,取5個數 print(np.logspace(0, 20, 5)) [1.e+00 1.e+05 1.e+10 1.e+15 1.e+20]
# 構造3*4的全0矩陣 print(np.zeros((3, 4))) #填的值爲(行數,列數) # 構造3*4的全1矩陣 print(np.ones((3, 4))) #填的值爲(行數,列數) # 構造3個主元的單位矩陣 print(np.eye(3)) #填的值爲(主元的個數) ''' [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]] '''
# fromstring經過對字符串的字符編碼所對應ASCII編碼的位置,生成一個ndarray對象 s = 'abcdef' # np.int8表示一個字符的字節數爲8 print(np.fromstring(s, dtype=np.int8)) def func(i, j): """其中i爲矩陣的行,j爲矩陣的列""" return i*j # 使用函數對矩陣元素的行和列的索引作處理,獲得當前元素的值,索引從0開始,並構造一個3*4的矩陣 print(np.fromfunction(func, (3, 4)))
# RandomState()方法會讓數據值隨機一次,以後都是相同的數據 rs = np.random.RandomState(1) print(rs.rand(10)) # 構造3*4的均勻分佈的矩陣 # seed()方法會讓數據值隨機一次,以後都是相同的數據 np.random.seed(1) print(np.random.rand(3, 4)) # 構造3*4*5的均勻分佈的矩陣 print(np.random.rand(3, 4, 5)) # 構造3*4的正態分佈的矩陣 print(np.random.randn(3, 4)) # 構造取值爲1-5內的10個元素的ndarray數組 print(np.random.randint(1, 5, 10)) # 構造取值爲0-1內的3*4的矩陣 print(np.random.random_sample((3, 4))) # 隨機選取arr中的兩個元素 print(np.random.choice(arr, size=2))
對照表dom
函數名稱 | 函數功能 | 參數說明 |
---|---|---|
rand(d0,d1,⋯,dn) | 產生[0,1)內的均勻分佈的隨機數 | d~n~爲第n維數據的維度 |
randn(d0,d1,⋯,dn) | 產生標準正態分佈隨機數 | d~n~爲第n維數據的維度 |
randint(low[, high, size, dtype]) | 產生隨機整數 | low:最小值;high:最大值;size:數據個數 |
random_sample([size]) | 在[0,1)內產生隨機數 | size爲隨機數的shape,能夠爲元祖或者列表 |
choice(a[, size]) | 從arr中隨機選擇指定數據 | arr爲1維數組;size爲數據形狀 |
4.矩陣運算(與數據類型差很少)函數
運算表工具
運算符 | 說明 |
---|---|
+ | 兩個矩陣對應元素相加 |
- | 兩個矩陣對應元素相減 |
* | 兩個矩陣對應元素相乘 |
/ | 兩個矩陣對應元素相除,若是都是整數則取商 |
% | 兩個矩陣對應元素相除後取餘數 |
**n | 單個矩陣每一個元素都取n次方,如**2:每一個元素都取平方 |
ndarray對象
.maxndarray對象
.minndarray對象
.meanndarray對象
.var()表明區別編碼
(axis=0)每列spa
(axis=1)每行code
# 獲取矩陣全部元素中的最大值 print(arr.max()) # 獲取舉着每一列的最大值 print(arr.max(axis=0)) # 獲取矩陣每一行的最大值 print(arr.max(axis=1)) # 獲取矩陣最大元素的索引位置 print(arr.argmax(axis=1) # 獲取矩陣全部元素的平均值 print(arr.mean()) # 獲取矩陣每一列的平均值 print(arr.mean(axis=0)) # 獲取矩陣每一行的平均值 print(arr.mean(axis=1)) # 獲取矩陣全部元素的方差 print(arr.var()) # 獲取矩陣每一列的元素的方差 print(arr.var(axis=0)) # 獲取矩陣每一行的元素的方差 print(arr.var(axis=1))