import numpy as np python内置对象list是一维数组,而numpy提供了n维数组及其运算,其数据类型是ndarray,运算法则依然遵循list方式,对于多维数组、矢量以及矩阵运算非常方便。 #将list转换为ndarray np.array([[1,2], [3,4]]) #生成一维序列,再转换为ndarray np.arange(25).reshape(5,5) #也可以随机生成多维数组 np.random.rand(3,4) #randn生成的数据符合正太分布 np.random.randn(4,4) #区间采样:[start, end] np.random.uniform(10, 30, 100) #全为1的数组 np.ones((2,2)) #全为0的数组 np.zeros((2,2)) #对角矩阵 np.eye(5, 5, 1) #获取对角元素 np.diag(np.arange(25).reshape(5,5)) #numpy提供了直接加载cvs格式数据的接口。delimiter是指定分隔符,usecols指定选择数据的列 filename = 'ex1data2.txt' np.loadtxt(filename, delimiter=',', usecols=(0, 2)) #切片,同样适用于dnarray,list切片语法为[start : end : step],应用到多维则是[start : end : step, start : end : step, ……] dnarr = np.arange(25).reshape(5,5) #选取头两列、所有行的数据 dnarr[:, :2] #坐标为数组 x = [1, 2, 3, 4] y = [0, 1, 0, 1] dnarr[x, y] #广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式,当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制 a = np.array([[ 0, 0, 0], [10,10,10], [20,20,20], [30,30,30]]) b = np.array([1,2,3]) a + b #翻转矩阵 a.T #数组的运算,对数组中的所有元素进行计算,非常方便 a = np.random.rand(3,3) b = np.random.rand(3,3) a + b a - b a * b a / b a * 2 a + 2 #统计函数 #按轴统计最大最小值 np.amax(a, 1) np.amin(a, 0) #最大最小差值 np.ptp(a, 0) #中位数 np.median(a, 1) #平均值 np.mean(a, 1) #方差 np.var(a, 1) #标准差 np.std(a, 1) #矩阵 import numpy.matlib numpy.matlib.rand(3,3)