美文网首页Numpy
python之科学运算Numpy模块

python之科学运算Numpy模块

作者: SlashBoyMr_wang | 来源:发表于2018-11-05 17:36 被阅读104次

前言:
今天我们介绍两个科学运算当中最为重要的两个模块,一个是 numpy,一个是 pandas。任何关于数据分析的模块都少不了它们两个。

为什么使用 numpy and pandas
运算速度快:numpy 和 pandas 都是采用 C 语言编写, pandas 又是基于 numpy, 是 numpy 的升级版本。
消耗资源少:采用的是矩阵运算,会比 python 自带的字典或者列表快好多

Numpy属性
ndim:维度
shape:行数和列数
size:元素个数

屏幕快照 2018-11-05 下午3.13.52.png

创建ndarray
array:创建数组
dtype:指定数据类型
zeros:创建数据全为0
ones:创建数据全为1
empty:创建数据接近0
arrange:按指定范围创建数据
linspace:创建线段

屏幕快照 2018-11-05 下午4.01.47.png 屏幕快照 2018-11-05 下午4.02.13.png 屏幕快照 2018-11-05 下午4.15.48.png
注意:
numpy默认ndarray的所有元素的类型是相同的
如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

Numpy的基本操作
1.索引:
(一维与列表完全一致 多维时同理),根据索引修改数据、查看数据

2.切片:
一维与列表完全一致 多维时同理

屏幕快照 2018-11-05 下午4.23.00.png 屏幕快照 2018-11-05 下午4.24.38.png
3.变形
使用arr.reshape()函数,注意参数是一个tuple
例:将一维数组变形成多维数组===arr.reshape((2,5))
例:将多维数组变形成一维数组===arr2 = arr1.reshape((15,))
例:arr2.reshape((-1,3)) ===其中-1表示的是根据列自动计算出行
实际应用:
图片翻转:图片本质上是三维的array,先将三维变形为一维,再通过切片翻转,然后在讲一维array变形为三维就实现了图片的翻转。

4.级联
使用np.concatenate((a1, a2, ...), axis=0)函数
级联需要注意的点:
--- 1.级联的参数是列表:一定要加中括号或小括号
--- 2.维度必须相同
--- 3.形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,必须保证进行级联的数组列数保持一致。
--- 4.可通过axis参数改变级联的方向

屏幕快照 2018-11-05 下午4.42.39.png
5.切分
与级联类似,三个函数完成切分工作:
-- np.split(arr,[行,列],轴):参数2是一个列表类型
-- np.vsplit
-- np.hsplit
例:np.split(arr,[2,4],axis=0)
应用:照片剪切

ndarray的聚合操作
求和np.sum()
最大最小值:np.max()/ np.min()
平均值:np.mean()

广播机制(重要)
ndarray广播机制的三条规则:缺失维度的数组将维度补充为进行运算的数组的维度。缺失的数组元素使用已有元素进行补充。
规则一:为缺失的维度补1(进行运算的两个数组之间的维度只能相差一个维度)
规则二:缺失元素用已有值填充
规则三:缺失维度的数组只能有一行或者一列

例一 例二 例三

ndarray的排序
快速排序
np.sort()与ndarray.sort()都可以,但有区别:
np.sort()不改变输入(原ndarray顺序不变)
ndarray.sort()本地处理,不占用空间,但改变输入(顺序改变,被覆盖)
部分排序(不常用)
np.partition(a,k) 有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。
当k为正时,我们想要得到最小的k个数
当k为负时,我们想要得到最大的k个数

相关文章

  • python之科学运算Numpy模块

    前言:今天我们介绍两个科学运算当中最为重要的两个模块,一个是 numpy,一个是 pandas。任何关于数据分析的...

  • numpy模块中axis

    参考文章 numpy模块之axis 以下是文章正文 axis的作用 numpy是python进行科学计算必不可少的...

  • Python & Numpy Trick

    关于科学计算中Python Numpy 的使用经验。 Numpy 中的广播机制 可以对列进行运算,对行进行运算。 ...

  • Python 科学应用库 numpy(1)

    numpy 和 pandas 在科学运算比较重要的库 numpy 和 pandas ,如果要用 python 进行...

  • Python数据分析(一):Numpy库学习

    一、Numpy简介 Numpy是python的科学计算库,支持高级大量的维度数组与矩阵运算,此外有针对数组运算提供...

  • python数据挖掘

    python数据挖掘常用模块 numpy模块:用于矩阵运算、随机数的生成等pandas模块:用于数据的读取、清洗、...

  • 8-Python 科学计算_numpy 篇

    课程概要:1、Python 科学计算介绍2、Numpy 之 ndarray 对象3、Numpy 之 ufunc 运...

  • Python机器学习库

    Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy。其中Numpy是一个用python实现的...

  • python3 numpy模块

    python3 numpy模块 什么是numpy? 一个在Python中做科学计算的基础库,重在数值计算,也是大部...

  • Python的numpy库

    numpy(numerical python)是一个开源的 Python 科学计算库,支持大量的数组与矩阵运算,并...

网友评论

  • 夜阑听雨_df11:你的开头诗呢??
    夜阑听雨_df11:@SlashBoyMr_wang 最近品读的欣赏
    玉楼春·东风又作无情计 宋代:晏几道

    东风又作无情计,艳粉娇红吹满地。碧楼帘影不遮愁,还似去年今日意。

    谁知错管春残事,到处登临曾费泪。此时金盏直须深,看尽落花能几醉!
    SlashBoyMr_wang:@夜阑听雨_df11 太伤感,都快抑郁了!

本文标题:python之科学运算Numpy模块

本文链接:https://www.haomeiwen.com/subject/pnhsxqtx.html