Please enable JavaScript.
Coggle requires JavaScript to display documents.
Numpy - Coggle Diagram
Numpy
random 随机数
np.random.rand(2,2) 同样的 np.random.random(size=[2,2])
从[0,1)中随机生成2x2矩阵
np.random.random()
从[0,1)中随机生成1个数字
np.random.randn(2,2)
正态分布:mean=0 ,variance=1 的2x2矩阵
np.random.randint(0,10,size = [2,2])
从[0,10)中随机生成2x2矩阵
np.random.choice(['a', 'e', 'i', 'o', 'u'], size = 10, p =[0.3, 0.1, 0.1, 0.4, 0.1])
从a,e,i,o,u中根据抽中概率抽10次, 不指定概率则默认相等
np.random.choice(np.arange(100), size = [10,3], replace=True)
从0到99中抽出一个10x3矩阵 重复抽样(抽完放回)
矩阵matrix
np.zeros()
np.ones()
np.full()
np.eye()
reshape()
indexing & slicing
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
取矩阵的一部分 b = a[:2, 1:3]
取一行 print(a[1])
取一列 print(a[:, 1:2])
取一个值 print(a[1, 1])
boolean masking
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) print(a)
校验满足条件的返回true: a_idx1 = (a <= 5)
“ & “ 同时满足所有条件返回true: a_idx2 = (a >=5) & (a <= 10)
" | " 满足其中一个条件时返回true: a_idx3 = (a<=3) | (a>=7)
返回满足条件的array: print(a[a_idx1])
math
a = np.array([[10, 11, 12], [13, 14, 15]]) b = np.arange(1, 7).reshape((2, 3))
T 转置矩阵的表达方法 a.tranpose() or a.Tdot 矩阵乘法的表达方法 np.dot() -->np.dot(a,b)a.dot(b)
元素层面的数学: print(a + b) print(a - b) print(np.add(a, b)) ---->prefer print(a * b) -->注意这里并不是真的矩阵乘法,仅是元素相乘
matrix manipulate
a = np.array([[10, 11, 12], [13, 14, 15]])
矩阵所有元素的总和
np.sum(a)
矩阵每列的和
np.sum(a, axis = 0)
矩阵每行的和
np.sum(a, axis=1)
矩阵层面的数学: 首先保证矩阵 A (m
n) B(n
k) ,形状能相乘 若两个是2*3, 则要其中一个转置矩阵 T, 举例
print(np.dot(a, b.transpose())) # 2x3, 3x2 a.dot(b.transpose()) print(a.T.dot(b)) # 3x2, 2x3 print(np.dot(a.T, b))
Install & import
!pip install numpy
import numpy as np
array (multidimensional array)
a = np.array(list) a[0][1] #第一行第二列
a.shape #矩阵形状 a.ndim #维度
a.dtype #int64
a.size #总共有多少子元素
np.arange()
b = np.arange(0, 10, 2, dtype='float') # -->(start,stop,step,dtype), dtype可写可不写,但要用引号
np.linspace( )
np.linspace(1.5, 2.5, 10) 从1.5-2.5生成10个数, type: array
Advance
use random generator to do train/test split
random seed: a = np.random.RandomState(60)