-
目录
为什么要学Numpy?
-
强大的数学和科学计算功能:NumPy提供了丰富的数学函数和线性代数运算,可以方便地进行数据分析和科学计算。
-
高效的数组操作:NumPy的核心是多维数组对象(ndarray),它提供了高效的数组操作和广播功能,可以快速处理大规模数据。
-
广泛的数据处理功能:NumPy提供了丰富的数据处理和操作函数,包括排序、统计、聚合、切片、索引等,可以方便地进行数据分析和处理。
-
与其他科学计算库的集成:NumPy与其他科学计算库(如SciPy、Pandas、Matplotlib)紧密集成,可以方便地与这些库配合使用,进行更复杂的数据分析和可视化。
-
开源和跨平台:NumPy是开源的Python库,可以在多种操作系统上运行,具有良好的跨平台性。
-
pip install numpy ; 先安装库!!!
-
一.Numpy的基本使用方法
-
import numpy as np # 一维数组的生成 arr1 = np.array([1, 2, 3]) # 列表转化 arr2 = np.array(range(10)) # 生成序列 arr3 = np.arange(1, 10, 2) # 遍历数据 (start,end,步长) arr4 = np.linspace(2.0, 3.0, num=6) # linspace(start,end,num=之间的数个数) # 创建多维数组 darr1 = np.array([[2, 3, 4], [5, 6, 7], [8, 9, 10]]) # 列表表示 darr2 = np.arange(10).reshape(2, 5) # reshape(column,row) darr3 = np.zeros((4, 4)) # 全0数组=空数组(empty) (column,row) darr4 = np.empty((4, 4)) # 空数组 darr5 = np.ones((4, 4)) # 全1数组 (column,row) # 基本类型 arry = np.array([1., 2.4, 4.5]) # arry.size 元素个数 # arry.shape 几维度的空间 # arry.data 元素缓冲区 # arry.dtype 元素类型 # arry.itemsize 元素字节大小 # arry.ndim 秩(返回维度) ndarray1 = arry.astype(np.int32) # 数据类型转换 ndarray2 = np.arange(10, dtype=float) # 创建数组时指定元素的类型 # 索引和切片 ar = np.arange(10) print(ar) print(ar[5]) # 取下标为5的元素 print(ar[2:]) # 取从下表为2的元素开始,之后的元素 print(ar[0::2]) # 取出偶数 (start,end,步长) # 二维数组的索引和切片跟此相似 # 布尔索引 a = np.array(['Ross', 'Jack', 'Back', 'Lisa']) b = np.random.randn(4, 4) # 随机生成4,4二维数组 print(a == 'Jack') # 用于数据的筛选 print(b[a == 'Jack']) # 数组b里面为筛选的条件 print(~b[a == 'Jack']) # 对表达式取反
二.Numpy的数组处理
arr = np.arange(9) # 一维数组
narr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # 多维数组
# numpy的排序
arr.sort()
arr.argsort()
narr.sort(axis=0) # axis 是按照按哪个轴排序 0-行 1-列 2-三维
# 数组的添加
print(np.append(narr, [1, 8,4, 3], axis=1)) #在数组后面追加元素
print(np.insert(narr, 3, [3,4,3], axis=1)) #插入到指定元素的下标
#数组的删除
np.delete(narr,1,axis=0) #按行或列删除
#去重
np.unique(arr) #对数据去重
#数组的拼接
np.concatenate((a,b),axis=0) #两个数组按行或列拼接
#数组的拆分
np.hstack((a,b)) #水平拆分
np.vstack((a,b)) #垂直拆分
# numpy在统计函数中的应用
numpy.mean(a) # 平均值
numpy.median(a) # 中位数
numpy.std(a) # 标准差
# where 的使用方法
# np.where(条件,x,y) 满足条件时,输出x,否则y => 三目运算符 ?: