python数据科学—NumPy

学习笔记


目录

从头创建数组
NumPy基础
NumPy用于计算的通用函数
NumPy的聚合(最大/小值等)函数
数组的计算之广播
数组的布尔掩码
花哨的索引
数组的排序


NumPy库

从头创建数组:
NumPy有许多内置的函数可以用来创建数组

import numpy as np

np.zeros(5, dtype=int) #建一长度为5,数值均为0的数组
np.ones((3, 5), dtype=float) #建一3x5的数值均为1的浮点型数组
np.full((3, 5), 4.44) #建一3x5的数值均为4.44的浮点型数组
np.arange(0, 20, 2) #数组从0~20,步长为2,最后的20不包含
np.linspace(1, 3, 5) #数组有5个元素,从1~3均匀分配
np.random.random((3,3)) #数组为3x3型,元素为0~1均匀分布的随机数
np.random.normal(0, 1, (3, 3)) #创建3x3的、均值为0、标准差为1的正态分布的随机数组
np.random.randint(0, 10, (3,3)) #创建3x3的、【0, 10)区间的随机整型数组
np.eye(5) #创建一个5x5的单位矩阵(元素为1或0)

NumPy基础:

  • NumPy的属性:数组的维度ndim;数组每个维度的大小shape;数组的总大小size;数组的数据类型dtype
  • 索引获取单个元素:与python列表用法类似
  • 通过切片获取字数组:array[start:stop:step]默认start=0、stop=维度大小、step=1;多位数组如二位数组也类似,不同维度用逗号隔开,如array2[1:2:2, 2:2:1];也可通过索引获取行或列。
  • 数组拼接方法:np.concatenate;np.xstack;np.hstack,用法如np.concatenate([array1, array2, array3])
  • 数组分裂方法:np.split;np.hsplit;np.vsplit,用法如np.split(array, [3,5])其中3和5为分裂点位置,分成三个数组。

NumPy用于计算的通用函数:

np.add #加法运算
np.subtract #减法运算
np.negative #负数运算
np.multiply #乘法运算
np.divide #除法运算
np.floor_divide #向下整除运算
np.power #指数运算
np.mod #模/余数

NumPy的聚合(最大/小值等)函数:
在这里插入图片描述
数组的计算之广播:

  • 利用NumPy的广播功能可以实现不同大小数组的计算(加、减、乘等)的一组规则;
  • 对维数不同的数组进行计算时,广播功能会通过一定的规则将其扩展到能够进行运算的维度。

数组的布尔掩码:
利用布尔掩码可以查看和操作NumPy数组中的值,对其进行判断或取出。

  • 获取掩码的操作如:
In[1]: x = np.array([1, 2, 3, 4, 5])
In[2]: x != 3 #不等于
Out[2]: array([True, True, False, True, True], dtype=bool)
  • 对布尔掩码进行操作如:
In[3]: rng = np.random.RandomState(0)
       x = rng.randint(10, size=(3,4))
       x
Out[3]: array([[5, 0, 3, 3],
               [7, 9, 3, 5),
               [2, 4, 7, 6]])
In[4]: np.sum(x < 6, axis=1) #每行有多少值小于6
Out[4]: array([4, 2, 2])
  • 将布尔数组作为掩码来进行取值等操作:
In[5]: x[x < 5] #将布尔数组作为掩码并用于索引取值
Out[5]: array([0, 3, 3, 3, 2, 4])

花哨的索引:
花哨的索引与前面的简单索引类似,但传递的是索引数组,而不是单个标量。花哨的索引让我们能够快速地获得并修改复杂的数组值的子数据集。

数组的排序:

  • NumPy的快速排序函数:np.sort和np.argsort;
  • 部分排序:np.partirion函数,输入数组和数字K,输出的是一个新书组,其前K个数为数组中前K小(这K个数无序)的数;也可利用axis参数使其沿某一特定轴排序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值