Python-Numpy 的基础知识 1.ndarray 的数据类型2.索引与切片# 一维数组的索引与切片 arr np.array([0,1,2,3,4,5,6,7,8,9]) print(arr) print(arr[0]) # 第一个元素 ---0 print(arr[:]) # 所有元素 ---[0 1 2 3 4 5 6 7 8 9] print(arr[1:5]) # 左闭右开 ---[1 2 3 4] print(arr[1:5:2]) # 步长为2 ---[1 3] print(arr[(arr5) (arr8)]) # # 条件索引输出大于5且小于8的元素 ---[6 7] print(arr[slice(1,5,2)]) # 使用slice对象进行切片等价于arr[1:5:2] ---[1 3] # 二维数组的索引与切片 arr np.random.randint(1,100,(3,4)) print(arr) print(arr[1,2]) # 第2行第3列的元素 ---24 print(arr[1]) # 第2行的所有元素 ---[91 86 24 67] print(arr[:,2]) # 第3列的所有元素 ---[ 2 24 52] print(arr[arr50]) # 条件索引输出大于50的元素 # ---[98 95 91 86 67 52 70] print(arr[slice(1,3), slice(0,2)]) # 使用slice对象进行切片等价于arr[1:3,0:2] #----[[91 86] # [23 47]]3.ndarray的运算a np.array([1,2,3]) b np.array([4,5,6]) print(a b) # 数组的加法: 对应索引位置的元素相加 print(a * b) # 数组的乘法: 对应索引位置的元素相乘 print(a - b) # 数组的减法: 对应索引位置的元素 print(a / b) # 数组的除法: 对应索引位置的元素相除 print(a ** 2) # 数组的幂运算: 每个元素的平方 c np.array([[1,2],[3,4]]) d np.array([[5,6],[7,8]]) print(c 5) # 数组与标量的加法: 每个元素加5 print(c * 2) # 数组与标量的乘法: 每个元素 print(c * d) # 数组的元素乘法: 对应索引位置的元素相乘 print(c d) # 数组的矩阵乘法: c的行与d的列进行点积运算 print(c.dot(d.T)) # 数组的 点乘: 等价于c d.T(d的转置) # 广播机制 # 当两个数组的形状不同时通过广播机制将它们的形状统一再进行运算 a np.array([1,2,3]) b np.array([[1],[2],[3]]) print(a b) # 广播: a的每个元素与b的每个元素相加4.Numpy常用函数# 常用函数 arr np.array([1,2,3,4,5]) print(np.sqrt(arr)) # 数组的平方根: 每个元素的平方根-sqrt print(np.exp(arr)) # 数组的指数函数: 每个元素的指数- exp print(np.sin(np.pi/2)) # 数组的正弦函数: 每个元素的正弦值 - sin print(np.cos(np.pi/3)) # 数组的余弦函数: 每个元素的余弦值 - cos print(np.abs(arr)) # 数组的绝对值函数: 每个元素的绝对值 - abs print(np.power(arr,2)) # 数组的幂函数: 每个元素的平方 - power print(np.round(arr)) # 数组的四舍五入函数: 每个元素四四舍五入 - round print(np.isnan(arr)) # 数组的判断函数: 判断每个元素是否为NaN - isNaN # 数组的统计函数 print(np.sum(arr)) # 数组的求和函数: 所有元素的和 - sum print(np.mean(arr)) # 数组的平均值函数: 所有元素的平均值 - mean print(np.median(arr)) # 数组的中位数函数: 所有元素的中位数 - median print(np.std(arr)) # 数组的标准差函数: 所有元素的标准差 - std print(np.var(arr)) # 数组的方差函数: 所有元素的方差 - var print(np.min(arr)) # 数组的最小值函数: 所有元素的最小值 - min print(np.max(arr)) # 数组的最大值函数: 所有元素的最大值 - max print(np.percentile(arr, 50)) # 数组的百分位数函数: 所有元素的第50百分位数 - percentile # 比较函数 判断数组元素是否满足某个条件 arr np.array([1,2,3,4,5]) print(np.equal(arr, 3)) # 数组的相等比较函数: 判断每个元素是否等于3 - equal print(np.greater(arr, 3)) # 数组的大于比较函数: 判断每个元素是否大于3 - greater print(np.less(arr, 3)) # 数组的小于比较函数: 判断每个元素是否小于3 - less print(np.equal([1,4,7],[2,5,7])) print(np.logical_and(arr2, arr5)) # 数组的逻辑与函数: 判断每个元素是否大于2且小于5 - logical_and print(np.logical_or(arr2, arr5)) # 数组的逻辑或函数: 判断每个元素是否大于2或小于5 - logical_or print(np.logical_not(arr3)) # 数组的逻辑非函数: 判断每个元素是否不大于3 - logical_not # 自定义条件 arr np.array([1,2,3,4,5]) score np.random.randint(0,100,20) print(np.where(arr3,arr,0)) # 数组的where函数: 根据条件返回元素 - where # 形如三目运算符 条件 ? 表达式1 : 表达式2 可以嵌套使用 # 数组的select函数: 根据条件返回元素 - select print(np.select([score80,(score60) (score80),score60],[A,B,C])) # 排序 arr np.array([5,3,2,4,1]) print(arr) print(np.sort(arr)) # 数组的sort函数: 对数组元素排序 - sort print(arr.argsort()) # 数组的argsort函数: 返回数组元素排序后的索引 - argsort # 去重函数 # 数组的unique函数: 返回数组中唯一的元素 - unique arr np.array([1,2,2,3,4,4,5]) print(np.unique(arr)) # 数组的拼接 # 数组的concatenate函数: 将多个数组拼接在一起 - concatenate arr1 np.array([1,2,3]) arr2 np.array([4,5,6]) print(np.concatenate((arr1, arr2))) # 数组的分割 arr np.array([1,2,3,4,5,6]) print(np.split(arr, 3)) # 数组的split函数: 将数组分割成3个子数组 - split # 数组的reshape函数: 将数组重新塑形 - reshape arr np.arange(1,13) print(np.reshape(arr,(3,4))) # 数组的求和函数: 所有元素的和 - sum print(每行的和为:,np.sum(np.reshape(arr,(3,4)),axis1)) print(每列的和为:,np.sum(np.reshape(arr,(3,4)),axis0))