• 【笔记】numpy.array的常用基本运算以及对数据的操作


    numpy.array的基本运算以及对数据的操作

    设置一个问题,例如

    这种只需要基本的运算就可以实现

    类似的

    numpy对向量的运算进行了优化,速度是相当快的,这种被称为universal functions
    可以使用+,-,,/,//, *(两个星号),%,1/(/表示浮点除,//表示整数除,%表示取余,**表示平方,1/表示倒数)

    特殊的运算
    像是abs(绝对值),三角函数(sin,cos,tan等),exp(所有元素取e的x次方),log,log2,log10

    矩阵之间的运算,要保证可以运算
    常规加减没问题,在矩阵相乘的时候不能使用*,要使用.dot(),转置矩阵可使用.T

    向量与矩阵的运算
    正常的加减法,虽然数学意义上不存在,但是是可以计算出来的,通过堆叠可以验证出来计算的结果

    不同行列数的矩阵相乘,也是使用dot来操作,不同的是,numpy会自动将结构修改,使之变成符合运算规律的计算
    (A.dot(V),将v变成了一个2*1的矩阵列向量)

    矩阵的逆
    使用linalg.inv

    由于很多时候只有方阵才能进行计算,那么我们就需要使用linalg.pinv来设置伪逆矩阵

    聚合操作

    聚合操作
    即将一组值变成一个值
    像是求和
    使用sum或者np.sum即可

    两者的区别就是,原生的sum效率是比np.sum的效率低的
    对二维数组也可以

    当设置成axis=0时,会沿着行的方向进行运算(垂直方向)

    同理,axis=1时,沿着列方向(水平方向)

    求一个组的最小值或最大值

    乘积(计算出来不对,感觉哪里出了问题),均值,中位数

    百分数
    q=50意味着百分之50的数(即中位数)

    通过for循环输出各个百分位点

    方差和标准差

    索引(arg运算)

    索引
    当想要获取获取的数的位置时,可以使用arg后接运算
    这将返回一个索引值,这个值的位置即为数值位置
    argmin

    argmax

    排序以及使用索引
    首先将创建出的乱序
    (如果只是对np.sort操作,这只是将顺序显示出来,并没有改变原有的顺序)

    对x进行sort操作的话,会直接改变

    对二维数组来说,相同
    注意:默认的axis为1

    使用argsort一样,返回的是索引

    使用索引排序
    使用argsort显示出来的是原有数据的索引值的排序顺序
    (像是索引为6的值是0,1的索引值为13,以此类推)

    快速排序的partition操作(对象,标定点)

    如果使用的是argpartition,则返回的是索引值,对二维数组同样适用

    比较(包含fancy indexing)

    Fancy indexing
    想要得到指定的索引值的数据(在需要非等步长的时候)
    可以使用ind

    我们还可以使用这种方法对二维的索引进行一个使用
    通过二维的索引,对原有数据引用,是指形成根据索引排布的一个二维矩阵

    对二维数组来说
    同样可以使用
    我们想要得到对应的行列元素,可进行相应的操作

    以上是数值方面的

    有时候我们还会遇到其他类型的数据
    比如在批量比较之后返回的布尔数组

    关于numpy.array的比较
    我们可以使用很多的符号,像是<,>,<=,>=,==,!=等等
    其返回的就是布尔值

    同时,我们也可以结合之前的运算符来构成更为复杂的算式

    同样,对二维数组一样适用

    对整体进行(对数组和矩阵都适用)
    count_nonzero,不为零的数量
    any,是有一个为true,则返回为true
    all,是有全部为true,则返回为true

    通过axis=1,对列这一行进行比较

    同样的,我们可以对这些进行组合
    在两个数组数据进行比较时,使用位运算符&(与),|(或),~(非)

    这种方法可以很直观的显示出所需要的值
    像是需要数组中小于5的,需要数组中为偶数的

    对二维数组来说一样可以
    如果我们需要抽出一些行,这些行满足的特点是最后一列可以被三整除,那么我们要先选择出第三列,然后进行整除,最后抽出来

    您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接
  • 相关阅读:
    let 和 const 命令
    字符串和数组之间相互转换
    angularjs 添加拦截器
    js判断数组是否包含指定元素的方法
    angularjs ng-include
    requirejs学习 关于requirejs的一些参数问题
    ngDialog 点击窗口以外不允许关闭弹窗
    jQuery Jcrop 图像裁剪
    Javascript模块化编程(三):require.js的用法
    angular.bootstrap手动加载angularjs模块
  • 原文地址:https://www.cnblogs.com/jokingremarks/p/14272050.html
Copyright © 2020-2023  润新知