Python—numpy的基本使用(机器学习基础)

一.numpy概述

1.NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
2.numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
3.NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

  • 一个强大的N维数组对象 ndarray
  • 比较成熟的(广播)函数库
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能
    numpy和稀疏矩阵运算包scipy配合使用更加方便。
    (部分资料来自百度百科)

二.NumPy 应用

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用.

  • SciPy 是一个开源的 Python 算法库和数学工具包。
    它包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
  • Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

三.创建ndarray数组

ndarray:N维数组对象(矩阵),所有元素必须是相同类型。
ndarray属性:

  • ndim属性,表示维度个数;
  • shape属性,表示各维度大小;
  • dtype属性,表示数据类型。
    创建ndarray数组函数:


    函数类型

    代码示例:

1.生成一维矩阵:
  • numpy和python中的数组类型不同


    示例1
2.生成二维矩阵:
示例2
3.使用zero/ones/empty创建数组:
示例3
4.使用arrange生成连续元素:
示例4

四.指定ndarray数组元素的类型

NumPy数据类型:


数据类型
1.生成指定元素类型的数组:设置dtype属性:
示例1
2.使用astype复制数组,并转换类型:
示例2
3.将字符串元素转换为数值元素:
示例3
4.使用其他数组的数据类型作为参数:
示例4

五.ndarray的矢量化计算

矢量运算:相同大小的数组键间的运算应用在元素上
矢量和标量运算:“广播”— 将标量“广播”到各个元素
代码示例:

ndarray数组与标量/数组的运算:
示例

六.ndarray数组的基本索引和切片

一维数组的索引:与Python的列表索引功能相似
多维数组的索引:

  • arr[r1:r2, c1:c2]
  • arr[1,1] 等价 arr[1][1]
  • [:] 代表某个维度的数据
    代码示例:
1.ndarray的基本索引:
示例1

示例2

示例2和示例3这两个例子就关系到深拷贝和浅拷贝问题,等以后会单独总结一章
浅拷贝后你所进行的操作会影响到之前的数组,深拷贝则不会影响


示例3
2.ndarray的切片:
示例1

示例2

七.ndarray数组的布尔索引和花式索引

布尔索引:使用布尔数组作为索引。arr[condition],condition为一个条件/多个条件组成的布尔数组。
布尔型索引代码示例:

1.ndarray的布尔型索引:
示例1
2.ndarray的花式索引:使用整型数组作为索引:

花式索引:使用整型数组作为索引。
花式索引代码示例:


示例2

八.ndarray数组的转置和轴对换

数组的转置/轴对换只会返回源数据的一个视图,不会对源数据进行修改。
代码示例:

ndarray数组的转置和轴对换:
示例

结果

九.ndarray通用函数

通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数。
一元ufunc:
一元ufunc代码示例:

1.一元ufunc示例:
示例1
2.二元ufunc示例:
二元

示例2

十.NumPy的where函数使用

np.where(condition, x, y),第一个参数为一个布尔数组,第二个参数和第三个参数可以是标量也可以是数组。
代码示例:

1.where函数的使用:
示例1
2.where函数的嵌套使用:
示例2

十一.ndarray常用的统计方法

可以通过这些基本统计方法对整个数组/某个轴的数据进行统计计算


方法
1.numpy的基本统计方法:
示例1

用于布尔数组的统计方法:

  • sum : 统计数组/数组某一维度中的True的个数
  • any: 统计数组/数组某一维度中是否存在一个/多个True
  • all:统计数组/数组某一维度中是否都是True
2.用于布尔数组的统计方法:
示例2

any(0)中的布尔值对应一列元素相或的值(如果是对应第一行,则test3.any(0)的结果应该为array([ False, True, True], dtype=bool)),any(1)中的布尔值对应每行元素的或值,any()为所有元素相或的值。
axis=0, 表示列一维度上操作。
axis=1, 表示行二维度上操作。
使用sort对数组/数组某一维度进行就地排序(会修改数组本身)
代码示例:

3.sort的就地排序:
示例3

十二.ndarray数组的去重以及集合运算

方法

代码示例:(方法返回类型为一维数组(1d))

ndarray的唯一化和集合运算:
示例

十三.numpy中的线性代数

import numpy.linalg 模块。线性代数(linear algebra)
常用的numpy.linalg模块函数


函数

代码示例:

线性代数:
示例

十四.numpy中的随机数生成

import numpy.random模块。
常用的numpy.random模块函数:


函数

代码示例:

numpy.random随机数生成:
示例

十五.ndarray数组重塑

代码示例:

ndarray数组重塑:
示例1

示例2

十六.ndarray数组的拆分与合并

类型

代码示例:


示例

结果1

结果2

十七.数组的元素重复操作

代码示例:

数组的元素重复操作:
示例

(此文章仅作为个人学习笔记使用,如有错误欢迎指正~)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容