第一章 jupyter notebook简单教程

  命令模式按键esc开启

  Enter : 转入编辑模式

  Shift-Enter : 运行本单元,选中下个单元

  Ctrl-Enter : 运行本单元

  Alt-Enter : 运行本单元,在其下插入新单元

  Y : 单元转入代码状态

  M :单元转入markdown状态

  Z : 恢复删除的最后一个单元

  第二章 numpy简单教程

  2.1 数组

  import numpy as np

  a = np.array([1, 2, 3])

  print(a)

  #out

  [1 2 3]

  a

  #out

  array([1, 2, 3])

  type(a)

  #out

  numpy.ndarray

  a.shape

  #out

  (3,)

  # reshape(1, -1)中1代表设置数组为1行 , -1代表一个占位符 , 表示a数组列数

  # reshape()中-1可以作为行的占位符也可以作为列的占位符

  a = a.reshape(1, -1)

  a.shape

  #out

  (1, 3)

  a = np.array([1, 2, 3, 4, 5, 6])

  a.shape

  #out

  (6,)

  a = a.reshape(2,-1)

  a.shape

  #out

  (2, 3)

  a

  #out

  array([[1, 2, 3],

  [4, 5, 6]])

  a = a.reshape(-1, 2)

  a.shape

  #out

  (3, 2)

  a[2, 0]

  #out

  5

  a[2, 0] = 55

  a[2, 0]

  #out

  55

  # zeros用于创建元素全部为0的矩阵数组

  a = np.zeros((3, 3))

  a

  #out

  array([[0., 0., 0.],

  [0., 0., 0.],

  [0., 0., 0.]])

  # ones用于创建元素全部为1的矩阵数组

  a = np.ones((3, 3))

  a

  #out

  array([[1., 1., 1.],

  [1., 1., 1.],

  [1., 1., 1.]])

  # zeros ones函数也完全可以用full函数实现

  a = np.full((2, 3), 0)

  a

  #out

  array([[0, 0, 0],

  [0, 0, 0]])

  # eye函数用于创建单位矩阵

  a = np.eye(3)

  a

  #out

  array([[1., 0., 0.],

  [0., 1., 0.],

  [0., 0., 1.]])

  # random.random用户创建数值为0-1之间的随机二维数组

  a = np.random.random((2, 3))

  a

  #out

  array([[0.54627035, 0.49586489, 0.6976645 ],

  [0.76596824, 0.95951819, 0.7515421 ]])

  2.2 数组索引操作

  # indexing : 数组索引

  a = np.array([[1, 2, 3, 4],

  [5, 6, 7, 8],

  [9, 10, 11, 12]])

  # -2代表数组的倒数第二行 , 1:3代表从第一列开始往后两个元素

  a[-2:, 1:3]

  #out

  array([[ 6, 7],

  [10, 11]])

  # 取倒数第二行 , 第三列元素

  a[-2, 3]

  #out

  8

  a

  #out

  array([[ 1, 2, 3, 4],

  [ 5, 6, 7, 8],

  [ 9, 10, 11, 12]])

  a.shape

  #out

  (3, 4)

  # 将数组a倒数第二行开始到最后一行 , 从第一列往后两列元素赋值给b数组

  b = a[-2:, 1:3]

  a

  #out

  array([[ 1, 2, 3, 4],

  [ 5, 6, 7, 8],

  [ 9, 10, 11, 12]])

  b

  #out

  array([[ 6, 7],

  [10, 11]])

  b.shape

  #out

  (2, 2)

  # 指定为索引为的2行

  b = a[2, 1:3]

  b

  #out

  array([10, 11])

  b.shape

  #out

  (2,)

  b = a[1, 2]

  b

  #out

  7

  b.shape

  #out

  ()

  b = a[2:3, 1:3]

  b

  #out

  array([[10, 11]])

  b.shape

  #out

  (1, 2)

  # 将数组的3行的1列 + 10

  a[np.arange(3), 1] += 10

  a

  #out

  array([[ 1, 12, 3, 4],

  [ 5, 16, 7, 8],

  [ 9, 20, 11, 12]])

  a[np.arange(2), 3] += 100

  a

  #out

  array([[ 1, 12, 3, 104],

  [ 5, 16, 7, 108],

  [ 9, 20, 11, 12]])

  # 产生一个0,1,2的数组 , 不包含3

  np.arange(3)

  #out

  array([0, 1, 2])

  # 产生一个从3-7的数组 , 不包含7

  np.arange(3,7)

  #out

  array([3, 4, 5, 6])

  a[np.arange(3), [1,1,1]] += 10

  a

  #out

  array([[ 1, 22, 3, 104],

  [ 5, 26, 7, 108],

  [ 9, 30, 11, 12]])

  a[[0,1,2], [1,1,1]] += 10

  a

  #out

  array([[ 1, 32, 3, 104],

  [ 5, 36, 7, 108],

  [ 9, 40, 11, 12]])

  # 判断数组a中大于10的值

  result_index = a>10

  result_index

  #out

  array([[False, True, False, True],

  [False, True, False, True],

  [False, True, True, True]])

  a[result_index]

  #out

  array([ 32, 104, 36, 108, 40, 11, 12])

  a[a>10]

  #out

  array([ 32, 104, 36, 108, 40, 11, 12])

  2.3 元素数组类型

  a = np.array([1,2,3])

  a.dtype

  #out

  dtype('int64')

  a = np.array([1.1, 2.2])

  a.dtype

  #out

  dtype('float64')

  a = np.array([1.1, 1, 'a'])

  a

  #out

  array(['1.1', '1', 'a'], dtype='

  # 将float型数组转化成int型

  a = np.array([1.1, 2.2], dtype=np.int64)

  a

  #out

  array([1, 2])

  # 将a数组赋值给b数组 , 同时设置元素类型为int

  b = np.array(a, dtype=np.int64)

  b

  #out

  array([1, 2])

  2.3 数组运算与常用函数

  numpy中的数学运算

  a = np.array([[1,2],

  [3,4]])

  b = np.array([[5,6],

  [6,5]])

  # 加法

  a+b

  #out

  array([[6, 8],

  [9, 9]])

  np.add(a,b)

  #out

  array([[6, 8],

  [9, 9]])

  # 减法

  a-b

  #out

  array([[-4, -4],

  [-3, -1]])

  np.subtract(a,b)

  #out

  array([[-4, -4],

  [-3, -1]])

  # 乘法

  a*b

  #out

  array([[ 5, 12],

  [18, 20]])

  np.multiply(a,b)

  #out

  array([[ 5, 12],

  [18, 20]])

  # 除法

  a/b

  #out

  array([[0.2 , 0.33333333],

  [0.5 , 0.8 ]])

  np.divide(a,b)

  #out

  array([[0.2 , 0.33333333],

  [0.5 , 0.8 ]])

  # 开方

  np.sqrt(a)

  #out

  array([[1. , 1.41421356],

  [1.73205081, 2. ]])

  a

  #out

  array([[1, 2],

  [3, 4]])

  b = np.array([[1,2,3],

  [4,5,6]])

  # dot : 是将a数组与b数组矩阵相乘的结果

  a.dot(b)

  #out

  array([[ 9, 12, 15],

  [19, 26, 33]])

  np.dot(a,b)

  #out

  array([[ 9, 12, 15],

  [19, 26, 33]])

  numpy中的常用函数

  # sum : 求和函数

  # 计算数组中全部元素的和

  a = np.array([[1,2],

  [3,4]])

  np.sum(a)

  #out

  10

  # 将数组中的每一列进行求和操作

  np.sum(a, axis=0)

  #out

  array([4, 6])

  # 将数组中的每一行进行求和操作

  np.sum(a, axis=1)

  #out

  array([3, 7])

  # mean : 求平均值函数

  # 计算数组的平均值

  np.mean(a)

  #out

  2.5

  # 计算数组每一列的平均值

  np.mean(a, axis=0)

  #out

  array([2., 3.])

  # 计算数组每一行的平均值

  np.mean(a, axis=1)

  #out

  array([1.5, 3.5])

  # uniform : 用户生成一个指定范围内的随机数值

  np.random.uniform(3,4)

  #out

  3.247709331922638

  # tile : 用于将一个数组作为一个元素重复指定的次数

  a无锡妇科医院哪家好 http://www.xasgfk.cn/

  #out

  array([[1, 2],

  [3, 4]])

  # 将数组在行上重复1次, 在列上重复2次

  np.tile(a, (1,2))

  #out

  array([[1, 2, 1, 2],

  [3, 4, 3, 4]])

  # 将数组在行上重复1次, 在列上重复3次

  np.tile(a, (1,3))

  #out

  array([[1, 2, 1, 2, 1, 2],

  [3, 4, 3, 4, 3, 4]])

  # argsort : 将数组中的元素进行排序 , 默认从小到大

  a = np.array([[1,12,3,104],

  [5,10,1,3]])

  # 按照数组下标将元素排好

  np.argsort(a)

  #out

  array([[0, 2, 1, 3],

  [2, 3, 0, 1]])

  # 将每一列进行排序

  a.argsort(axis=0)

  #out

  array([[0, 1, 1, 1],

  [1, 0, 0, 0]])

  # T : 矩阵转置

  a

  #out

  array([[ 1, 12, 3, 104],

  [ 5, 10, 1, 3]])

  a.T

  #out

  array([[ 1, 5],

  [ 12, 10],

  [ 3, 1],

  [104, 3]])

  # 使用transpose函数将数组转置

  np.transpose(a)

  #out

  array([[ 1, 5],

  [ 12, 10],

  [ 3, 1],

  [104, 3]])

  2.4 广播

  广播

  可以将不同维度的数组进行相加 , numpy会将不同维度的数组转化成相同维度的数组 , 广播会在缺失维度和一维的数组上进行操作

  a = np.array([[1, 2, 3],

  [5, 6, 7],

  [9, 10, 11]])

  b = np.array([1,2,3])

  # 将b数组加到a数组的每一行

  for i in range(3):

  a[i, :] += b

  a

  #out

  array([[ 2, 4, 6],

  [ 6, 8, 10],

  [10, 12, 14]])

  # 将b数组行上重复3次 , 列上重复1次 , 与a相加

  a + np.tile(b, (3,1))

  #out

  array([[ 3, 6, 9],

  [ 7, 10, 13],

  [11, 14, 17]])

Python人工智能常用库Numpy使用入门的更多相关文章

  1. Python科学计算库Numpy

    Python科学计算库Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1.简 ...

  2. 数据分析常用库(numpy,pandas,matplotlib,scipy)

    概述 numpy numpy(numeric python)是 python 的一个开源数值计算库,主要用于数组和矩阵计算.底层是 C 语言,运行效率远高于纯 python 代码.numpy主要包含2 ...

  3. Python的常用库

    读者您好.今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们.他们是: Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都 ...

  4. 爬虫-Python爬虫常用库

    一.常用库 1.requests 做请求的时候用到. requests.get("url") 2.selenium 自动化会用到. 3.lxml 4.beautifulsoup 5 ...

  5. Python扫描器-常用库-Request

    1.常用库-Request 1.1. 介绍 #安装:pip3 install requests #各种请求方式:常用的就是requests.get()和requests.post() >> ...

  6. python常用库 - NumPy 和 sklearn入门

    Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...

  7. [Python学习] python 科学计算库NumPy—矩阵运算

    NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...

  8. Python科学计算库-Numpy

    NumPy 是 Python 语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,也是学习 python 必学的一个库. 1. 读取文件 numpy.gen ...

  9. Python自动化测试常用库

    基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...

随机推荐

  1. ReactiveX 学习笔记(29)使用 RxCpp(RxQt)+ Qt 进行 GUI 编程

    课题 程序界面由3个文本编辑框和1个文本标签组成. 要求文本标签实时显示3个文本编辑框所输入的数字之和. 文本编辑框输入的不是合法数字时,将其值视为0. 3个文本编辑框的初值分别为1,2,3. 下载 ...

  2. 转:ubuntu16安装python3.6并将环境设置为系统默认

    按照本文升级到3.6,但pip无法运行了,问题没有解决 1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-common su ...

  3. The Nth Item 南昌网络赛(递推数列,分段打表)

    The Nth Item \[ Time Limit: 1000 ms \quad Memory Limit: 262144 kB \] 题意 给出递推式,求解每次 \(F[n]\) 的值,输出所有 ...

  4. 单例模式-DCL双重锁检查实现及原理刨析

    以我的经验为例(如有不对欢迎指正),在生产过程中,经常会遇到下面两种情况: 1.封装的某个类不包含具有具体业务含义的类成员变量,是对业务动作的封装,如MVC中的各层(HTTPRequest对象以Thr ...

  5. 将python项目.py文件打包成.exe文件

    安装pyinstaller包 pip3 install pyinstaller 如果不行 pip3 install pyinstaller -i https://pypi.doubanio.com/s ...

  6. ESA2GJK1DH1K基础篇: 关于各大物联网平台的MQTT通信

    前言 这节稍微唠叨点 其实我很长时间都没有出怎么连接现成的物联网平台的教程, 一直写的是教给大家自己搭建服务器,主要原因是因为我感觉连接现有的学不到东西. 现在出这种教程,是因为发现确实很多人喜欢用. ...

  7. 图的遍历 | 1034 map处理输入数据,连通块判断

    这题写得比较痛苦.首先有点不在状态,其次题目比较难读懂. “Gang”成立的两个条件:①成员数大于两个  ②边权总和大于阈值K 首先,在录数据的时候通过map或者字符串哈希建立string到int的映 ...

  8. 【LG3647】[APIO2014]连珠线

    [LG3647][APIO2014]连珠线 题面 洛谷 题解 首先考虑一下蓝线连起来的情况,一定是儿子-父亲-另一个儿子或者是儿子-父亲-父亲的父亲. 而因为一开始只有一个点在当前局面上,将一条红边变 ...

  9. servlet中的doGet()与doPost()以及service()的用法

    doget和dopost的区别 get和post是http协议的两种方法,另外还有head, delete等 1.这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能 ...

  10. C# 使用CefSharp嵌入网站

    最近有一个项目,需要在winform中嵌套web网站,从网上了解到几个相关的组件有winform自带的IE内核的WebBrowser,有第三方组件谷歌内核的webkit.cefsharp.chromi ...